algebra.direct_limitMathlib.Algebra.DirectLimit

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -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
 -/
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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]
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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.
 
Diff
@@ -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,
Diff
@@ -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
 
Diff
@@ -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
 -/
 
Diff
@@ -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
 
Diff
@@ -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)]
Diff
@@ -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]
Diff
@@ -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,
Diff
@@ -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]. -/
Diff
@@ -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,
Diff
@@ -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]
Diff
@@ -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.
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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.

Changes in mathlib4

mathlib3
mathlib4
chore: adapt to multiple goal linter 3 (#12372)

A PR analogous to #12338 and #12361: reformatting proofs following the multiple goals linter of #12339.

Diff
@@ -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 :=
feat: NNRat.cast (#11203)

Define the canonical coercion from the nonnegative rationals to any division semiring.

From LeanAPAP

Diff
@@ -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
 
chore: Final cleanup before NNRat.cast (#12360)

This is the parts of the diff of #11203 which don't mention NNRat.cast.

  • Use more where notation.
  • Write qsmul := _ instead of qsmul := qsmulRec _ to make the instances more robust to definition changes.
  • Delete qsmulRec.
  • Move qsmul before ratCast_def in instance declarations.
  • Name more instances.
  • Rename rat_smul to qsmul.
Diff
@@ -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
chore(Algebra/Algebra): split 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>

Diff
@@ -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
 
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


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

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

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

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -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
chore: add decidability assumptions where needed for the statement (#11157)

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.

Zulip thread about the linter

Diff
@@ -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
chore(Algebra/DirectLimit): drop some DecidableEq assumptions (#11288)

... by moving variable [DecidableEq ι] to sections.

Diff
@@ -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) _ _ _ _
refactor: do not allow qsmul to default automatically (#11262)

Follows on from #6262. Again, this does not attempt to fix any diamonds; it only identifies where they may be.

Diff
@@ -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
chore: scope open Classical (#11199)

We remove all but one open Classicals, 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.

Diff
@@ -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 :=
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -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 _ _
perf (Algebra.DirectLimit): use suppress_compilation (#9664)

Uses suppress_compilation to lessen the load on Lean when building the file.

Diff
@@ -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₁
 
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

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.

Zulip thread

Important changes

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].

Remaining issues

Slower (failing) search

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_params, [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 sometimes

This 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.

Missing instances due to unification failing

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 outParams 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.)

Workaround for issues

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>

Diff
@@ -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) :
chore: move to v4.6.0-rc1, merging adaptations from bump/v4.6.0 (#10176)

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

Diff
@@ -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
chore(*): rename FunLike to DFunLike (#9785)

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

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

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

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

Diff
@@ -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)
feat(Algebra/DirectLimit): add 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>

Diff
@@ -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
chore: add some Unique instances (#8500)

The aim is to remove some extraneous Nonempty assumptions in Algebra/DirectLimit.

Co-authored-by: Junyan Xu <junyanxu.math@gmail.com> Co-authored-by: Jujian Zhang <jujian.zhang1998@outlook.com>

Diff
@@ -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
perf(FunLike.Basic): beta reduce CoeFun.coe (#7905)

This eliminates (fun a ↦ β) α in the type when applying a FunLike.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -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)
chore: clear some porting notes on rfl (#8063)

We remove some porting notes for rfls that by now work again.

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -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]
perf: speed up Ring.DirectLimit.field instance (#7864)

This is split off from #7584

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

Diff
@@ -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
chore: missing spaces after rcases, convert and congrm (#7725)

Replace rcases( with rcases (. Same thing for convert( and congrm(. No other change.

Diff
@@ -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)
chore: use _root_.map_sum more consistently (#7189)

Also _root_.map_smul when in the neighbourhood.

Diff
@@ -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]
chore: update/remove heart beat bumps (#6860)

We clean up heart beat bumps after #6474.

Diff
@@ -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]
chore: drop 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).

Diff
@@ -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
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,17 +2,14 @@
 Copyright (c) 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.
 
chore: rename Dfinsupp to DFinsupp (#5822)

See #4354

Diff
@@ -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,
chore: remove occurrences of semicolon after space (#5713)

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

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

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

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

Diff
@@ -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
chore: fix focusing dots (#5708)

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.

Diff
@@ -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
chore: clean up spacing around 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
Diff
@@ -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
chore: convert lambda in docs to fun (#5045)

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

Diff
@@ -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
chore: formatting issues (#4947)

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

Diff
@@ -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
chore: add space after exacts (#4945)

Too often tempted to change these during other PRs, so doing a mass edit here.

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

Diff
@@ -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)
feat: port Algebra.DirectLimit (#4052)

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>

Dependencies 8 + 498

499 files ported (98.4%)
205351 lines ported (98.5%)
Show graph

The unported dependencies are