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 (