algebra.homology.oppositeMathlib.Algebra.Homology.Opposite

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -70,36 +70,36 @@ theorem imageToKernel_unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f
 #align image_to_kernel_unop imageToKernel_unop
 -/
 
-#print homologyOp /-
+#print homology'Op /-
 /-- Given `f, g` with `f ≫ g = 0`, the homology of `g.op, f.op` is the opposite of the homology of
 `f, g`. -/
-def homologyOp {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
-    homology g.op f.op (by rw [← op_comp, w, op_zero]) ≅ Opposite.op (homology f g w) :=
+def homology'Op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
+    homology' g.op f.op (by rw [← op_comp, w, op_zero]) ≅ Opposite.op (homology' f g w) :=
   cokernelIsoOfEq (imageToKernel_op _ _ w) ≪≫
     cokernelEpiComp _ _ ≪≫
       cokernelCompIsIso _ _ ≪≫
         cokernelOpOp _ ≪≫
-          (homologyIsoKernelDesc _ _ _ ≪≫
+          (homology'IsoKernelDesc _ _ _ ≪≫
               kernelIsoOfEq
                   (by ext <;> simp only [image.fac, cokernel.π_desc, cokernel.π_desc_assoc]) ≪≫
                 kernelCompMono _ (image.ι g)).op
-#align homology_op homologyOp
+#align homology_op homology'Op
 -/
 
-#print homologyUnop /-
+#print homology'Unop /-
 /-- Given morphisms `f, g` in `Vᵒᵖ` with `f ≫ g = 0`, the homology of `g.unop, f.unop` is the
 opposite of the homology of `f, g`. -/
-def homologyUnop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
-    homology g.unop f.unop (by rw [← unop_comp, w, unop_zero]) ≅ Opposite.unop (homology f g w) :=
+def homology'Unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
+    homology' g.unop f.unop (by rw [← unop_comp, w, unop_zero]) ≅ Opposite.unop (homology' f g w) :=
   cokernelIsoOfEq (imageToKernel_unop _ _ w) ≪≫
     cokernelEpiComp _ _ ≪≫
       cokernelCompIsIso _ _ ≪≫
         cokernelUnopUnop _ ≪≫
-          (homologyIsoKernelDesc _ _ _ ≪≫
+          (homology'IsoKernelDesc _ _ _ ≪≫
               kernelIsoOfEq
                   (by ext <;> simp only [image.fac, cokernel.π_desc, cokernel.π_desc_assoc]) ≪≫
                 kernelCompMono _ (image.ι g)).unop
-#align homology_unop homologyUnop
+#align homology_unop homology'Unop
 -/
 
 end
@@ -334,40 +334,40 @@ end
 
 variable [Abelian V] (C : HomologicalComplex V c) (i : ι)
 
-#print HomologicalComplex.homologyOpDef /-
+#print HomologicalComplex.homology'OpDef /-
 /-- Auxilliary tautological definition for `homology_op`. -/
-def homologyOpDef :
-    C.op.homology i ≅
-      homology (C.dFrom i).op (C.dTo i).op (by rw [← op_comp, C.d_to_comp_d_from i, op_zero]) :=
+def homology'OpDef :
+    C.op.homology' i ≅
+      homology' (C.dFrom i).op (C.dTo i).op (by rw [← op_comp, C.d_to_comp_d_from i, op_zero]) :=
   Iso.refl _
-#align homological_complex.homology_op_def HomologicalComplex.homologyOpDef
+#align homological_complex.homology_op_def HomologicalComplex.homology'OpDef
 -/
 
-#print HomologicalComplex.homologyOp /-
+#print HomologicalComplex.homology'Op /-
 /-- Given a complex `C` of objects in `V`, the `i`th homology of its 'opposite' complex (with
 objects in `Vᵒᵖ`) is the opposite of the `i`th homology of `C`. -/
-def homologyOp : C.op.homology i ≅ Opposite.op (C.homology i) :=
-  homologyOpDef _ _ ≪≫ homologyOp _ _ _
-#align homological_complex.homology_op HomologicalComplex.homologyOp
+def homology'Op : C.op.homology' i ≅ Opposite.op (C.homology' i) :=
+  homology'OpDef _ _ ≪≫ homology'Op _ _ _
+#align homological_complex.homology_op HomologicalComplex.homology'Op
 -/
 
-#print HomologicalComplex.homologyUnopDef /-
+#print HomologicalComplex.homology'UnopDef /-
 /-- Auxilliary tautological definition for `homology_unop`. -/
-def homologyUnopDef (C : HomologicalComplex Vᵒᵖ c) :
-    C.unop.homology i ≅
-      homology (C.dFrom i).unop (C.dTo i).unop
+def homology'UnopDef (C : HomologicalComplex Vᵒᵖ c) :
+    C.unop.homology' i ≅
+      homology' (C.dFrom i).unop (C.dTo i).unop
         (by rw [← unop_comp, C.d_to_comp_d_from i, unop_zero]) :=
   Iso.refl _
-#align homological_complex.homology_unop_def HomologicalComplex.homologyUnopDef
+#align homological_complex.homology_unop_def HomologicalComplex.homology'UnopDef
 -/
 
-#print HomologicalComplex.homologyUnop /-
+#print HomologicalComplex.homology'Unop /-
 /-- Given a complex `C` of objects in `Vᵒᵖ`, the `i`th homology of its 'opposite' complex (with
 objects in `V`) is the opposite of the `i`th homology of `C`. -/
-def homologyUnop (C : HomologicalComplex Vᵒᵖ c) :
-    C.unop.homology i ≅ Opposite.unop (C.homology i) :=
-  homologyUnopDef _ _ ≪≫ homologyUnop _ _ _
-#align homological_complex.homology_unop HomologicalComplex.homologyUnop
+def homology'Unop (C : HomologicalComplex Vᵒᵖ c) :
+    C.unop.homology' i ≅ Opposite.unop (C.homology' i) :=
+  homology'UnopDef _ _ ≪≫ homology'Unop _ _ _
+#align homological_complex.homology_unop HomologicalComplex.homology'Unop
 -/
 
 end HomologicalComplex
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2022 Amelia Livingston. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Amelia Livingston
 -/
-import Mathbin.CategoryTheory.Abelian.Opposite
-import Mathbin.CategoryTheory.Abelian.Homology
-import Mathbin.Algebra.Homology.Additive
+import CategoryTheory.Abelian.Opposite
+import CategoryTheory.Abelian.Homology
+import Algebra.Homology.Additive
 
 #align_import algebra.homology.opposite from "leanprover-community/mathlib"@"50251fd6309cca5ca2e747882ffecd2729f38c5d"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2022 Amelia Livingston. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Amelia Livingston
-
-! This file was ported from Lean 3 source module algebra.homology.opposite
-! leanprover-community/mathlib commit 50251fd6309cca5ca2e747882ffecd2729f38c5d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Abelian.Opposite
 import Mathbin.CategoryTheory.Abelian.Homology
 import Mathbin.Algebra.Homology.Additive
 
+#align_import algebra.homology.opposite from "leanprover-community/mathlib"@"50251fd6309cca5ca2e747882ffecd2729f38c5d"
+
 /-!
 # Opposite categories of complexes
 
Diff
@@ -42,6 +42,7 @@ section
 
 variable {V : Type _} [Category V] [Abelian V]
 
+#print imageToKernel_op /-
 theorem imageToKernel_op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
     imageToKernel g.op f.op (by rw [← op_comp, w, op_zero]) =
       (imageSubobjectIso _ ≪≫ (imageOpOp _).symm).Hom ≫
@@ -54,7 +55,9 @@ theorem imageToKernel_op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g =
     imageToKernel_arrow, kernel_subobject_arrow', kernel.lift_ι, ← op_comp, cokernel.π_desc, ←
     image_subobject_arrow, ← image_unop_op_inv_comp_op_factor_thru_image g.op]
 #align image_to_kernel_op imageToKernel_op
+-/
 
+#print imageToKernel_unop /-
 theorem imageToKernel_unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
     imageToKernel g.unop f.unop (by rw [← unop_comp, w, unop_zero]) =
       (imageSubobjectIso _ ≪≫ (imageUnopUnop _).symm).Hom ≫
@@ -68,6 +71,7 @@ theorem imageToKernel_unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f
     imageToKernel_arrow, kernel_subobject_arrow', kernel.lift_ι, cokernel.π_desc, iso.unop_inv, ←
     unop_comp, factor_thru_image_comp_image_unop_op_inv, Quiver.Hom.unop_op, image_subobject_arrow]
 #align image_to_kernel_unop imageToKernel_unop
+-/
 
 #print homologyOp /-
 /-- Given `f, g` with `f ≫ g = 0`, the homology of `g.op, f.op` is the opposite of the homology of
@@ -220,6 +224,7 @@ def opCounitIso : opInverse V c ⋙ opFunctor V c ≅ 𝟭 (HomologicalComplex V
 #align homological_complex.op_counit_iso HomologicalComplex.opCounitIso
 -/
 
+#print HomologicalComplex.opEquivalence /-
 /-- Given a category of complexes with objects in `V`, there is a natural equivalence between its
 opposite category and a category of complexes with objects in `Vᵒᵖ`. -/
 @[simps]
@@ -236,6 +241,7 @@ def opEquivalence : (HomologicalComplex V c)ᵒᵖ ≌ HomologicalComplex Vᵒ
       op_functor_map_f, Quiver.Hom.unop_op, hom.iso_of_components_hom_f]
     exact category.comp_id _
 #align homological_complex.op_equivalence HomologicalComplex.opEquivalence
+-/
 
 #print HomologicalComplex.unopFunctor /-
 /-- Auxilliary definition for `unop_equivalence`. -/
@@ -296,6 +302,7 @@ def unopCounitIso : unopInverse V c ⋙ unopFunctor V c ≅ 𝟭 (HomologicalCom
 #align homological_complex.unop_counit_iso HomologicalComplex.unopCounitIso
 -/
 
+#print HomologicalComplex.unopEquivalence /-
 /-- Given a category of complexes with objects in `Vᵒᵖ`, there is a natural equivalence between its
 opposite category and a category of complexes with objects in `V`. -/
 @[simps]
@@ -312,14 +319,19 @@ def unopEquivalence : (HomologicalComplex Vᵒᵖ c)ᵒᵖ ≌ HomologicalComple
       op_functor_map_f, Quiver.Hom.unop_op, hom.iso_of_components_hom_f]
     exact category.comp_id _
 #align homological_complex.unop_equivalence HomologicalComplex.unopEquivalence
+-/
 
 variable {V c}
 
+#print HomologicalComplex.opFunctor_additive /-
 instance opFunctor_additive : (@opFunctor ι V _ c _).Additive where
 #align homological_complex.op_functor_additive HomologicalComplex.opFunctor_additive
+-/
 
+#print HomologicalComplex.unopFunctor_additive /-
 instance unopFunctor_additive : (@unopFunctor ι V _ c _).Additive where
 #align homological_complex.unop_functor_additive HomologicalComplex.unopFunctor_additive
+-/
 
 end
 
Diff
@@ -119,7 +119,7 @@ protected def op (X : HomologicalComplex V c) : HomologicalComplex Vᵒᵖ c.sym
   pt i := op (X.pt i)
   d i j := (X.d j i).op
   shape' i j hij := by rw [X.shape j i hij, op_zero]
-  d_comp_d' := by intros ; rw [← op_comp, X.d_comp_d, op_zero]
+  d_comp_d' := by intros; rw [← op_comp, X.d_comp_d, op_zero]
 #align homological_complex.op HomologicalComplex.op
 -/
 
@@ -131,7 +131,7 @@ protected def opSymm (X : HomologicalComplex V c.symm) : HomologicalComplex Vᵒ
   pt i := op (X.pt i)
   d i j := (X.d j i).op
   shape' i j hij := by rw [X.shape j i hij, op_zero]
-  d_comp_d' := by intros ; rw [← op_comp, X.d_comp_d, op_zero]
+  d_comp_d' := by intros; rw [← op_comp, X.d_comp_d, op_zero]
 #align homological_complex.op_symm HomologicalComplex.opSymm
 -/
 
@@ -143,7 +143,7 @@ protected def unop (X : HomologicalComplex Vᵒᵖ c) : HomologicalComplex V c.s
   pt i := unop (X.pt i)
   d i j := (X.d j i).unop
   shape' i j hij := by rw [X.shape j i hij, unop_zero]
-  d_comp_d' := by intros ; rw [← unop_comp, X.d_comp_d, unop_zero]
+  d_comp_d' := by intros; rw [← unop_comp, X.d_comp_d, unop_zero]
 #align homological_complex.unop HomologicalComplex.unop
 -/
 
@@ -155,7 +155,7 @@ protected def unopSymm (X : HomologicalComplex Vᵒᵖ c.symm) : HomologicalComp
   pt i := unop (X.pt i)
   d i j := (X.d j i).unop
   shape' i j hij := by rw [X.shape j i hij, unop_zero]
-  d_comp_d' := by intros ; rw [← unop_comp, X.d_comp_d, unop_zero]
+  d_comp_d' := by intros; rw [← unop_comp, X.d_comp_d, unop_zero]
 #align homological_complex.unop_symm HomologicalComplex.unopSymm
 -/
 
@@ -211,12 +211,12 @@ def opCounitIso : opInverse V c ⋙ opFunctor V c ≅ 𝟭 (HomologicalComplex V
   NatIso.ofComponents
     (fun X =>
       HomologicalComplex.Hom.isoOfComponents (fun i => Iso.refl _) fun i j hij => by
-        simpa only [iso.refl_hom, category.id_comp, category.comp_id] )
+        simpa only [iso.refl_hom, category.id_comp, category.comp_id])
     (by
       intro X Y f
       ext
       simpa only [Quiver.Hom.unop_op, Quiver.Hom.op_unop, functor.comp_map, functor.id_map,
-        iso.refl_hom, category.id_comp, category.comp_id, comp_f, hom.iso_of_components_hom_f] )
+        iso.refl_hom, category.id_comp, category.comp_id, comp_f, hom.iso_of_components_hom_f])
 #align homological_complex.op_counit_iso HomologicalComplex.opCounitIso
 -/
 
@@ -287,12 +287,12 @@ def unopCounitIso : unopInverse V c ⋙ unopFunctor V c ≅ 𝟭 (HomologicalCom
   NatIso.ofComponents
     (fun X =>
       HomologicalComplex.Hom.isoOfComponents (fun i => Iso.refl _) fun i j hij => by
-        simpa only [iso.refl_hom, category.id_comp, category.comp_id] )
+        simpa only [iso.refl_hom, category.id_comp, category.comp_id])
     (by
       intro X Y f
       ext
       simpa only [Quiver.Hom.unop_op, Quiver.Hom.op_unop, functor.comp_map, functor.id_map,
-        iso.refl_hom, category.id_comp, category.comp_id, comp_f, hom.iso_of_components_hom_f] )
+        iso.refl_hom, category.id_comp, category.comp_id, comp_f, hom.iso_of_components_hom_f])
 #align homological_complex.unop_counit_iso HomologicalComplex.unopCounitIso
 -/
 
Diff
@@ -42,9 +42,6 @@ section
 
 variable {V : Type _} [Category V] [Abelian V]
 
-/- warning: image_to_kernel_op -> imageToKernel_op is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align image_to_kernel_op imageToKernel_opₓ'. -/
 theorem imageToKernel_op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
     imageToKernel g.op f.op (by rw [← op_comp, w, op_zero]) =
       (imageSubobjectIso _ ≪≫ (imageOpOp _).symm).Hom ≫
@@ -58,9 +55,6 @@ theorem imageToKernel_op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g =
     image_subobject_arrow, ← image_unop_op_inv_comp_op_factor_thru_image g.op]
 #align image_to_kernel_op imageToKernel_op
 
-/- warning: image_to_kernel_unop -> imageToKernel_unop is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align image_to_kernel_unop imageToKernel_unopₓ'. -/
 theorem imageToKernel_unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
     imageToKernel g.unop f.unop (by rw [← unop_comp, w, unop_zero]) =
       (imageSubobjectIso _ ≪≫ (imageUnopUnop _).symm).Hom ≫
@@ -226,12 +220,6 @@ def opCounitIso : opInverse V c ⋙ opFunctor V c ≅ 𝟭 (HomologicalComplex V
 #align homological_complex.op_counit_iso HomologicalComplex.opCounitIso
 -/
 
-/- warning: homological_complex.op_equivalence -> HomologicalComplex.opEquivalence is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (V : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u2} V] (c : ComplexShape.{u1} ι) [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Equivalence.{max u1 u3, max u1 u3, max u2 u1 u3, max u2 u1 u3} (Opposite.{succ (max u2 u1 u3)} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (CategoryTheory.Category.opposite.{max u1 u3, max u2 u1 u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c))
-but is expected to have type
-  forall {ι : Type.{u1}} (V : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u2} V] (c : ComplexShape.{u1} ι) [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Equivalence.{max u1 u3, max u1 u3, max (max u1 u2) u3, max (max u1 u2) u3} (Opposite.{max (max (succ u1) (succ u2)) (succ u3)} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max (max u1 u2) u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c))
-Case conversion may be inaccurate. Consider using '#align homological_complex.op_equivalence HomologicalComplex.opEquivalenceₓ'. -/
 /-- Given a category of complexes with objects in `V`, there is a natural equivalence between its
 opposite category and a category of complexes with objects in `Vᵒᵖ`. -/
 @[simps]
@@ -308,12 +296,6 @@ def unopCounitIso : unopInverse V c ⋙ unopFunctor V c ≅ 𝟭 (HomologicalCom
 #align homological_complex.unop_counit_iso HomologicalComplex.unopCounitIso
 -/
 
-/- warning: homological_complex.unop_equivalence -> HomologicalComplex.unopEquivalence is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (V : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u2} V] (c : ComplexShape.{u1} ι) [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Equivalence.{max u1 u3, max u1 u3, max u2 u1 u3, max u2 u1 u3} (Opposite.{succ (max u2 u1 u3)} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (CategoryTheory.Category.opposite.{max u1 u3, max u2 u1 u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c))
-but is expected to have type
-  forall {ι : Type.{u1}} (V : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u2} V] (c : ComplexShape.{u1} ι) [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Equivalence.{max u1 u3, max u1 u3, max (max u2 u1) u3, max (max u1 u2) u3} (Opposite.{max (max (succ u1) (succ u2)) (succ u3)} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max (max u1 u2) u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c))
-Case conversion may be inaccurate. Consider using '#align homological_complex.unop_equivalence HomologicalComplex.unopEquivalenceₓ'. -/
 /-- Given a category of complexes with objects in `Vᵒᵖ`, there is a natural equivalence between its
 opposite category and a category of complexes with objects in `V`. -/
 @[simps]
@@ -333,21 +315,9 @@ def unopEquivalence : (HomologicalComplex Vᵒᵖ c)ᵒᵖ ≌ HomologicalComple
 
 variable {V c}
 
-/- warning: homological_complex.op_functor_additive -> HomologicalComplex.opFunctor_additive is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} V] {c : ComplexShape.{u1} ι} [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Functor.Additive.{max u2 u1 u3, max u2 u1 u3, max u1 u3, max u1 u3} (Opposite.{succ (max u2 u1 u3)} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max u2 u1 u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Opposite.preadditive.{max u2 u1 u3, max u1 u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.CategoryTheory.preadditive.{u3, u2, u1} ι V _inst_1 _inst_2 c)) (HomologicalComplex.CategoryTheory.preadditive.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Opposite.preadditive.{u2, u3} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.opFunctor.{u1, u2, u3} ι V _inst_1 c _inst_2)
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} V] {c : ComplexShape.{u1} ι} [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Functor.Additive.{max (max u1 u2) u3, max (max u1 u2) u3, max u1 u3, max u1 u3} (Opposite.{max (max (succ u1) (succ u2)) (succ u3)} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max (max u1 u2) u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.instPreadditiveOppositeOpposite.{max (max u1 u2) u3, max u1 u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.instPreadditiveHomologicalComplexPreadditiveHasZeroMorphismsInstCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 _inst_2 c)) (HomologicalComplex.instPreadditiveHomologicalComplexPreadditiveHasZeroMorphismsInstCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.instPreadditiveOppositeOpposite.{u2, u3} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.opFunctor.{u1, u2, u3} ι V _inst_1 c _inst_2)
-Case conversion may be inaccurate. Consider using '#align homological_complex.op_functor_additive HomologicalComplex.opFunctor_additiveₓ'. -/
 instance opFunctor_additive : (@opFunctor ι V _ c _).Additive where
 #align homological_complex.op_functor_additive HomologicalComplex.opFunctor_additive
 
-/- warning: homological_complex.unop_functor_additive -> HomologicalComplex.unopFunctor_additive is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} V] {c : ComplexShape.{u1} ι} [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Functor.Additive.{max u2 u1 u3, max u2 u1 u3, max u1 u3, max u1 u3} (Opposite.{succ (max u2 u1 u3)} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max u2 u1 u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Opposite.preadditive.{max u2 u1 u3, max u1 u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.CategoryTheory.preadditive.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Opposite.preadditive.{u2, u3} V _inst_1 _inst_2) c)) (HomologicalComplex.CategoryTheory.preadditive.{u3, u2, u1} ι V _inst_1 _inst_2 (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.unopFunctor.{u1, u2, u3} ι V _inst_1 c _inst_2)
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} V] {c : ComplexShape.{u1} ι} [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Functor.Additive.{max (max u1 u2) u3, max (max u1 u2) u3, max u1 u3, max u1 u3} (Opposite.{max (max (succ u1) (succ u2)) (succ u3)} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max (max u1 u2) u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.instPreadditiveOppositeOpposite.{max (max u1 u2) u3, max u1 u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.instPreadditiveHomologicalComplexPreadditiveHasZeroMorphismsInstCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.instPreadditiveOppositeOpposite.{u2, u3} V _inst_1 _inst_2) c)) (HomologicalComplex.instPreadditiveHomologicalComplexPreadditiveHasZeroMorphismsInstCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 _inst_2 (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.unopFunctor.{u1, u2, u3} ι V _inst_1 c _inst_2)
-Case conversion may be inaccurate. Consider using '#align homological_complex.unop_functor_additive HomologicalComplex.unopFunctor_additiveₓ'. -/
 instance unopFunctor_additive : (@unopFunctor ι V _ c _).Additive where
 #align homological_complex.unop_functor_additive HomologicalComplex.unopFunctor_additive
 
Diff
@@ -125,9 +125,7 @@ protected def op (X : HomologicalComplex V c) : HomologicalComplex Vᵒᵖ c.sym
   pt i := op (X.pt i)
   d i j := (X.d j i).op
   shape' i j hij := by rw [X.shape j i hij, op_zero]
-  d_comp_d' := by
-    intros
-    rw [← op_comp, X.d_comp_d, op_zero]
+  d_comp_d' := by intros ; rw [← op_comp, X.d_comp_d, op_zero]
 #align homological_complex.op HomologicalComplex.op
 -/
 
@@ -139,9 +137,7 @@ protected def opSymm (X : HomologicalComplex V c.symm) : HomologicalComplex Vᵒ
   pt i := op (X.pt i)
   d i j := (X.d j i).op
   shape' i j hij := by rw [X.shape j i hij, op_zero]
-  d_comp_d' := by
-    intros
-    rw [← op_comp, X.d_comp_d, op_zero]
+  d_comp_d' := by intros ; rw [← op_comp, X.d_comp_d, op_zero]
 #align homological_complex.op_symm HomologicalComplex.opSymm
 -/
 
@@ -153,9 +149,7 @@ protected def unop (X : HomologicalComplex Vᵒᵖ c) : HomologicalComplex V c.s
   pt i := unop (X.pt i)
   d i j := (X.d j i).unop
   shape' i j hij := by rw [X.shape j i hij, unop_zero]
-  d_comp_d' := by
-    intros
-    rw [← unop_comp, X.d_comp_d, unop_zero]
+  d_comp_d' := by intros ; rw [← unop_comp, X.d_comp_d, unop_zero]
 #align homological_complex.unop HomologicalComplex.unop
 -/
 
@@ -167,9 +161,7 @@ protected def unopSymm (X : HomologicalComplex Vᵒᵖ c.symm) : HomologicalComp
   pt i := unop (X.pt i)
   d i j := (X.d j i).unop
   shape' i j hij := by rw [X.shape j i hij, unop_zero]
-  d_comp_d' := by
-    intros
-    rw [← unop_comp, X.d_comp_d, unop_zero]
+  d_comp_d' := by intros ; rw [← unop_comp, X.d_comp_d, unop_zero]
 #align homological_complex.unop_symm HomologicalComplex.unopSymm
 -/
 
Diff
@@ -43,10 +43,7 @@ section
 variable {V : Type _} [Category V] [Abelian V]
 
 /- warning: image_to_kernel_op -> imageToKernel_op is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} V] [_inst_2 : CategoryTheory.Abelian.{u2, u1} V _inst_1] {X : V} {Y : V} {Z : V} (f : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y) (g : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) (w : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasKernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f))))) (imageToKernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasKernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (Eq.symm.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (CategoryTheory.op_comp.{u2, u1} V _inst_1 X Y Z f g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z _a) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (CategoryTheory.op_zero.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2) X Z))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.imageOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasKernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (CategoryTheory.Iso.hom.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageOpOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.imageOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Iso.trans.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageOpOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageOpOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g)) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.imageOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.imageSubobjectIso.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageOpOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g)) (CategoryTheory.Iso.symm.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.imageOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageOpOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g)) (CategoryTheory.imageOpOp.{u1, u2} V _inst_1 _inst_2 Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.imageOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCokernels.{u2, u1} V _inst_1 _inst_2) X Y f))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasKernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCokernels.{u2, u1} V _inst_1 _inst_2) X Y f)) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.cokernel.desc.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCokernels.{u2, u1} V _inst_1 _inst_2) X Y f) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, 1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (fun (_a : Prop) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) _a) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.symm.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (propext (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (CategoryTheory.cancel_mono.{u2, u1} V _inst_1 (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z X (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.CategoryTheory.mono.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.Category.assoc.{u2, u1} V _inst_1 X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f _a) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) g (CategoryTheory.Limits.image.fac.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) _a)) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.Limits.zero_comp.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))))))))))) (CategoryTheory.Iso.inv.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelOpUnop._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.kernelOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Iso.trans.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelOpUnop._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Limits.kernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelOpUnop._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f)) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.kernelOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Limits.kernelSubobjectIso.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelOpUnop._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f)) (CategoryTheory.kernelOpOp.{u1, u2} V _inst_1 _inst_2 X Y f)))))
-but is expected to have type
-  forall {V : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} V] [_inst_2 : CategoryTheory.Abelian.{u2, u1} V _inst_1] {X : V} {Y : V} {Z : V} (f : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y) (g : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) (w : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f))))) (imageToKernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (Eq.symm.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (CategoryTheory.op_comp.{u2, u1} V _inst_1 X Y Z f g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z _a) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))) (CategoryTheory.op_zero.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2) X Z))) (Eq.refl.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (CategoryTheory.Iso.hom.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Iso.trans.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.imageSubobjectIso.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g))) (CategoryTheory.Iso.symm.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g))) (CategoryTheory.imageOpOp.{u1, u2} V _inst_1 _inst_2 Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2)) X Y f))) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2)) X Y f)) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.cokernel.desc.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2)) X Y f) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, 1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (fun (_a : Prop) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) _a) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.symm.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (propext (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.cancel_mono.{u2, u1} V _inst_1 (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z X (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.instMonoImageι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.Category.assoc.{u2, u1} V _inst_1 X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f _a) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) g (CategoryTheory.Limits.image.fac.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) _a)) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.Limits.zero_comp.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.refl.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))))))))) (CategoryTheory.Iso.inv.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2)) X Y f))) (CategoryTheory.Iso.trans.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (CategoryTheory.Limits.kernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2)) X Y f))) (CategoryTheory.Limits.kernelSubobjectIso.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f))) (CategoryTheory.kernelOpOp.{u1, u2} V _inst_1 _inst_2 X Y f)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align image_to_kernel_op imageToKernel_opₓ'. -/
 theorem imageToKernel_op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
     imageToKernel g.op f.op (by rw [← op_comp, w, op_zero]) =
@@ -62,10 +59,7 @@ theorem imageToKernel_op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g =
 #align image_to_kernel_op imageToKernel_op
 
 /- warning: image_to_kernel_unop -> imageToKernel_unop is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} V] [_inst_2 : CategoryTheory.Abelian.{u2, u1} V _inst_1] {X : Opposite.{succ u1} V} {Y : Opposite.{succ u1} V} {Z : Opposite.{succ u1} V} (f : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) X Y) (g : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) Y Z) (w : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasKernels.{u2, u1} V _inst_1 _inst_2) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f))))) (imageToKernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasKernels.{u2, u1} V _inst_1 _inst_2) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (Eq.symm.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (CategoryTheory.unop_comp.{u2, u1} V _inst_1 X Y Z f g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z _a) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))) (CategoryTheory.unop_zero.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2) X Z))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.imageUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasKernels.{u2, u1} V _inst_1 _inst_2) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (CategoryTheory.Iso.hom.{u2, u1} V _inst_1 ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageUnopUnop._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.imageUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Iso.trans.{u2, u1} V _inst_1 ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageUnopUnop._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageUnopUnop._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g)) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.imageUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.imageSubobjectIso.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageUnopUnop._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g)) (CategoryTheory.Iso.symm.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.imageUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageUnopUnop._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g)) (CategoryTheory.imageUnopUnop.{u1, u2} V _inst_1 _inst_2 Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.imageUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasCokernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) X Y f))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasKernels.{u2, u1} V _inst_1 _inst_2) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (CategoryTheory.Limits.cokernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasCokernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) X Y f)) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.cokernel.desc.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasCokernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) X Y f) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, 1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) (fun (_a : Prop) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) _a) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.symm.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) (propext (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) (CategoryTheory.cancel_mono.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z X (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.CategoryTheory.mono.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.Category.assoc.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) Y Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) Y Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f _a) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) g (CategoryTheory.Limits.image.fac.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) _a)) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.Limits.zero_comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))))))))))) (CategoryTheory.Iso.inv.{u2, u1} V _inst_1 ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelUnopOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Y f (CategoryTheory.kernelUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Iso.trans.{u2, u1} V _inst_1 ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelUnopOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Limits.kernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelUnopOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f)) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Y f (CategoryTheory.kernelUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Limits.kernelSubobjectIso.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelUnopOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f)) (CategoryTheory.kernelUnopUnop.{u1, u2} V _inst_1 _inst_2 X Y f)))))
-but is expected to have type
-  forall {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Abelian.{u1, u2} V _inst_1] {X : Opposite.{succ u2} V} {Y : Opposite.{succ u2} V} {Z : Opposite.{succ u2} V} (f : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (Quiver.opposite.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1))) X Y) (g : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (Quiver.opposite.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1))) Y Z) (w : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.imageSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g)))) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f))))) (imageToKernel.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (fun (_a : Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) _a (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (Eq.symm.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (CategoryTheory.unop_comp.{u1, u2} V _inst_1 X Y Z f g)))) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (fun (_a : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z _a) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) w)) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (Quiver.opposite.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (Quiver.opposite.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (fun (_a : Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) _a (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))) (CategoryTheory.unop_zero.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2) X Z))) (Eq.refl.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))))))) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.imageSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g)))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)))) (CategoryTheory.Iso.hom.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.imageSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g)))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Iso.trans.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.imageSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g)))) (CategoryTheory.Limits.image.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.imageSubobjectIso.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g))) (CategoryTheory.Iso.symm.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g))) (CategoryTheory.imageUnopUnop.{u2, u1} V _inst_1 _inst_2 Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.cokernel.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCoequalizers_opposite.{u1, u2} V _inst_1 (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2))) X Y f))) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)))) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Limits.cokernel.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCoequalizers_opposite.{u1, u2} V _inst_1 (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2))) X Y f)) (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.cokernel.desc.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCoequalizers_opposite.{u1, u2} V _inst_1 (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2))) X Y f) (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, 1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) (fun (_a : Prop) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) _a) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.symm.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) (propext (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.cancel_mono.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z X (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.instMonoImageι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))))))) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) _a (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.Category.assoc.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) Y Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) Y Z) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f _a) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) g (CategoryTheory.Limits.image.fac.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (fun (_a : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) _a (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) w)) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) _a)) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.Limits.zero_comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.refl.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))))))))))) (CategoryTheory.Iso.inv.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.cokernel.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCoequalizers_opposite.{u1, u2} V _inst_1 (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2))) X Y f))) (CategoryTheory.Iso.trans.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)))) (CategoryTheory.Limits.kernel.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.cokernel.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCoequalizers_opposite.{u1, u2} V _inst_1 (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2))) X Y f))) (CategoryTheory.Limits.kernelSubobjectIso.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f))) (CategoryTheory.kernelUnopUnop.{u2, u1} V _inst_1 _inst_2 X Y f)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align image_to_kernel_unop imageToKernel_unopₓ'. -/
 theorem imageToKernel_unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
     imageToKernel g.unop f.unop (by rw [← unop_comp, w, unop_zero]) =
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Amelia Livingston
 
 ! This file was ported from Lean 3 source module algebra.homology.opposite
-! leanprover-community/mathlib commit 8c75ef3517d4106e89fe524e6281d0b0545f47fc
+! leanprover-community/mathlib commit 50251fd6309cca5ca2e747882ffecd2729f38c5d
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Algebra.Homology.Additive
 
 /-!
 # Opposite categories of complexes
+
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
 Given a preadditive category `V`, the opposite of its category of chain complexes is equivalent to
 the category of cochain complexes of objects in `Vᵒᵖ`. We define this equivalence, and another
 analagous equivalence (for a general category of homological complexes with a general
Diff
@@ -39,6 +39,12 @@ section
 
 variable {V : Type _} [Category V] [Abelian V]
 
+/- warning: image_to_kernel_op -> imageToKernel_op is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} V] [_inst_2 : CategoryTheory.Abelian.{u2, u1} V _inst_1] {X : V} {Y : V} {Z : V} (f : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y) (g : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) (w : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasKernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f))))) (imageToKernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasKernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (Eq.symm.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (CategoryTheory.op_comp.{u2, u1} V _inst_1 X Y Z f g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z _a) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (CategoryTheory.op_zero.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2) X Z))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.imageOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasKernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (CategoryTheory.Iso.hom.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageOpOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.imageOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Iso.trans.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageOpOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageOpOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g)) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.imageOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.imageSubobjectIso.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageOpOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g)) (CategoryTheory.Iso.symm.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.imageOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageOpOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g)) (CategoryTheory.imageOpOp.{u1, u2} V _inst_1 _inst_2 Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.imageOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCokernels.{u2, u1} V _inst_1 _inst_2) X Y f))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasKernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCokernels.{u2, u1} V _inst_1 _inst_2) X Y f)) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.cokernel.desc.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCokernels.{u2, u1} V _inst_1 _inst_2) X Y f) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, 1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (fun (_a : Prop) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) _a) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.symm.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (propext (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (CategoryTheory.cancel_mono.{u2, u1} V _inst_1 (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z X (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.CategoryTheory.mono.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.Category.assoc.{u2, u1} V _inst_1 X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f _a) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) g (CategoryTheory.Limits.image.fac.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) _a)) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (CategoryTheory.Limits.zero_comp.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))))))))))) (CategoryTheory.Iso.inv.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelOpUnop._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.kernelOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Iso.trans.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Opposite.{succ u1} V) (CategoryTheory.Subobject.hasCoe.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelOpUnop._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Limits.kernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelOpUnop._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f)) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.kernelOpOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Limits.kernelSubobjectIso.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelOpUnop._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f)) (CategoryTheory.kernelOpOp.{u1, u2} V _inst_1 _inst_2 X Y f)))))
+but is expected to have type
+  forall {V : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} V] [_inst_2 : CategoryTheory.Abelian.{u2, u1} V _inst_1] {X : V} {Y : V} {Z : V} (f : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y) (g : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) (w : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f))))) (imageToKernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (Eq.symm.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (CategoryTheory.op_comp.{u2, u1} V _inst_1 X Y Z f g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z _a) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)))) (CategoryTheory.op_zero.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2) X Z))) (Eq.refl.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V X))))))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (CategoryTheory.Iso.hom.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Iso.trans.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.imageSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.imageSubobjectIso.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g))) (CategoryTheory.Iso.symm.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u1, u2} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Z) (Opposite.op.{succ u1} V Y) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g))) (CategoryTheory.imageOpOp.{u1, u2} V _inst_1 _inst_2 Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) (Opposite.op.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2)) X Y f))) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2)) X Y f)) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.cokernel.desc.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2)) X Y f) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, 1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (fun (_a : Prop) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) _a) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.symm.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (propext (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))) (CategoryTheory.cancel_mono.{u2, u1} V _inst_1 (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z X (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.instMonoImageι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))))))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.Category.assoc.{u2, u1} V _inst_1 X Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z f (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f _a) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) Y (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) g (CategoryTheory.Limits.image.fac.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z)))) (id.{0} (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) _a)) (Eq.refl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))) (CategoryTheory.Limits.zero_comp.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X (CategoryTheory.Limits.image.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g)) Z (CategoryTheory.Limits.image.ι.{u2, u1} V _inst_1 Y Z g (CategoryTheory.Limits.HasImages.has_image.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) Y Z g))))) (Eq.refl.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Z))))))))))) (CategoryTheory.Iso.inv.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2)) X Y f))) (CategoryTheory.Iso.trans.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Prefunctor.obj.{max (succ u1) (succ u2), succ u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))))) (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u2, max u1 u2, u1} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (Preorder.smallCategory.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (PartialOrder.toPreorder.{max u1 u2} (CategoryTheory.Subobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)) (CategoryTheory.instPartialOrderSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y)))) (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Subobject.underlying.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (CategoryTheory.Limits.kernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f))) (Opposite.op.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2)) X Y f))) (CategoryTheory.Limits.kernelSubobjectIso.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasEqualizers_opposite.{u2, u1} V _inst_1 (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} V _inst_1 _inst_2))) (Opposite.op.{succ u1} V Y) (Opposite.op.{succ u1} V X) (Quiver.Hom.op.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f))) (CategoryTheory.kernelOpOp.{u1, u2} V _inst_1 _inst_2 X Y f)))))
+Case conversion may be inaccurate. Consider using '#align image_to_kernel_op imageToKernel_opₓ'. -/
 theorem imageToKernel_op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
     imageToKernel g.op f.op (by rw [← op_comp, w, op_zero]) =
       (imageSubobjectIso _ ≪≫ (imageOpOp _).symm).Hom ≫
@@ -52,6 +58,12 @@ theorem imageToKernel_op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g =
     image_subobject_arrow, ← image_unop_op_inv_comp_op_factor_thru_image g.op]
 #align image_to_kernel_op imageToKernel_op
 
+/- warning: image_to_kernel_unop -> imageToKernel_unop is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} V] [_inst_2 : CategoryTheory.Abelian.{u2, u1} V _inst_1] {X : Opposite.{succ u1} V} {Y : Opposite.{succ u1} V} {Z : Opposite.{succ u1} V} (f : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) X Y) (g : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) Y Z) (w : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasKernels.{u2, u1} V _inst_1 _inst_2) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f))))) (imageToKernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasKernels.{u2, u1} V _inst_1 _inst_2) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (Eq.symm.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)) (CategoryTheory.unop_comp.{u2, u1} V _inst_1 X Y Z f g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z _a) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (Quiver.opposite.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (fun (_a : Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) _a (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X))))) (CategoryTheory.unop_zero.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2) X Z))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V X)))))))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g)))) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.imageUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasKernels.{u2, u1} V _inst_1 _inst_2) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (CategoryTheory.Iso.hom.{u2, u1} V _inst_1 ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageUnopUnop._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.imageUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Iso.trans.{u2, u1} V _inst_1 ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.imageSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageUnopUnop._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageUnopUnop._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g)) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.imageUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.imageSubobjectIso.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageUnopUnop._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g)) (CategoryTheory.Iso.symm.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.imageUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (CategoryTheory.Limits.image.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Z) (Opposite.unop.{succ u1} V Y) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) Y Z g) (CategoryTheory.imageUnopUnop._proof_1.{u1, u2} V _inst_1 _inst_2 Y Z g)) (CategoryTheory.imageUnopUnop.{u1, u2} V _inst_1 _inst_2 Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.imageUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 Y Z g))) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasCokernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) X Y f))) ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasKernels.{u2, u1} V _inst_1 _inst_2) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f)))) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) (CategoryTheory.Limits.cokernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasCokernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) X Y f)) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.cokernel.desc.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) (CategoryTheory.Abelian.hasCokernels.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2)) X Y f) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, 1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) (fun (_a : Prop) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) _a) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.symm.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) (propext (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))) (CategoryTheory.cancel_mono.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z X (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.CategoryTheory.mono.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))))))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.Category.assoc.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) X Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z f (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) Y Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) Y Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f _a) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) Y (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) g (CategoryTheory.Limits.image.fac.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) _a (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) w)) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) _a)) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1)) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))) (CategoryTheory.Limits.zero_comp.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.image.ι.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.hasImage.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Opposite.abelian.{u1, u2} V _inst_1 _inst_2))) Y Z g))))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} (Opposite.{succ u1} V) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Z)))))))))))) (CategoryTheory.Iso.inv.{u2, u1} V _inst_1 ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelUnopOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Y f (CategoryTheory.kernelUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Iso.trans.{u2, u1} V _inst_1 ((fun (a : Type.{max u1 u2}) (b : Type.{u1}) [self : HasLiftT.{succ (max u1 u2), succ u1} a b] => self.0) (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (HasLiftT.mk.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CoeTCₓ.coe.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (coeBase.{succ (max u1 u2), succ u1} (CategoryTheory.Subobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y)) V (CategoryTheory.Subobject.hasCoe.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y))))) (CategoryTheory.Limits.kernelSubobject.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelUnopOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Limits.kernel.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelUnopOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f)) (Opposite.unop.{succ u1} V (CategoryTheory.Limits.cokernel.{u2, u1} (Opposite.{succ u1} V) (CategoryTheory.Category.opposite.{u2, u1} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u2, u1} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2))) X Y f (CategoryTheory.kernelUnopOp._proof_2.{u1, u2} V _inst_1 _inst_2 X Y f))) (CategoryTheory.Limits.kernelSubobjectIso.{u2, u1} V _inst_1 (Opposite.unop.{succ u1} V Y) (Opposite.unop.{succ u1} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u2, u1} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u1, succ u2} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} V (CategoryTheory.Category.toCategoryStruct.{u2, u1} V _inst_1)) X Y f) (CategoryTheory.kernelUnopOp._proof_1.{u1, u2} V _inst_1 _inst_2 X Y f)) (CategoryTheory.kernelUnopUnop.{u1, u2} V _inst_1 _inst_2 X Y f)))))
+but is expected to have type
+  forall {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Abelian.{u1, u2} V _inst_1] {X : Opposite.{succ u2} V} {Y : Opposite.{succ u2} V} {Z : Opposite.{succ u2} V} (f : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (Quiver.opposite.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1))) X Y) (g : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (Quiver.opposite.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1))) Y Z) (w : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.imageSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g)))) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f))))) (imageToKernel.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (fun (_a : Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) _a (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (Eq.symm.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)) (CategoryTheory.unop_comp.{u1, u2} V _inst_1 X Y Z f g)))) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (fun (_a : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z _a) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) w)) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (Quiver.opposite.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (Quiver.opposite.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (fun (_a : Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) _a (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)))) (CategoryTheory.unop_zero.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2) X Z))) (Eq.refl.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V X))))))))) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.imageSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g)))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)))) (CategoryTheory.Iso.hom.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.imageSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g)))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Iso.trans.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.imageSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g)))) (CategoryTheory.Limits.image.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.imageSubobjectIso.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g))) (CategoryTheory.Iso.symm.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Z) (Opposite.unop.{succ u2} V Y) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) Y Z g))) (CategoryTheory.imageUnopUnop.{u2, u1} V _inst_1 _inst_2 Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.cokernel.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCoequalizers_opposite.{u1, u2} V _inst_1 (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2))) X Y f))) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)))) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Limits.cokernel.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCoequalizers_opposite.{u1, u2} V _inst_1 (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2))) X Y f)) (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.cokernel.desc.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCoequalizers_opposite.{u1, u2} V _inst_1 (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2))) X Y f) (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, 1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) (fun (_a : Prop) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) _a) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.symm.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) (propext (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))) (CategoryTheory.cancel_mono.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z X (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.instMonoImageι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))))))))) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) _a (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.Category.assoc.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) X Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z f (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) Y Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) Y Z) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f _a) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) Y (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.factorThruImage.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) g (CategoryTheory.Limits.image.fac.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (fun (_a : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) _a (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X Y Z f g) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) w)) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z)))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (fun (_a : Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) _a)) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.CategoryStruct.comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1)) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))) (CategoryTheory.Limits.zero_comp.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X (CategoryTheory.Limits.image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g)) Z (CategoryTheory.Limits.image.ι.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) Y Z g (CategoryTheory.Limits.HasImages.has_image.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.instAbelianOppositeOpposite.{u2, u1} V _inst_1 _inst_2))) Y Z g))))) (Eq.refl.{succ u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} (Opposite.{succ u2} V) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1))) X Z) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Z))))))))))) (CategoryTheory.Iso.inv.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.cokernel.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCoequalizers_opposite.{u1, u2} V _inst_1 (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2))) X Y f))) (CategoryTheory.Iso.trans.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y))) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f)))) (CategoryTheory.Limits.kernel.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f))) (Opposite.unop.{succ u2} V (CategoryTheory.Limits.cokernel.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) X Y f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u1, u2} (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u1, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2))) (CategoryTheory.Limits.hasCoequalizers_opposite.{u1, u2} V _inst_1 (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2))) X Y f))) (CategoryTheory.Limits.kernelSubobjectIso.{u1, u2} V _inst_1 (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} V _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} V _inst_1 _inst_2)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} V _inst_1 _inst_2)) (Opposite.unop.{succ u2} V Y) (Opposite.unop.{succ u2} V X) (Quiver.Hom.unop.{u2, succ u1} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) X Y f))) (CategoryTheory.kernelUnopUnop.{u2, u1} V _inst_1 _inst_2 X Y f)))))
+Case conversion may be inaccurate. Consider using '#align image_to_kernel_unop imageToKernel_unopₓ'. -/
 theorem imageToKernel_unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
     imageToKernel g.unop f.unop (by rw [← unop_comp, w, unop_zero]) =
       (imageSubobjectIso _ ≪≫ (imageUnopUnop _).symm).Hom ≫
@@ -66,6 +78,7 @@ theorem imageToKernel_unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f
     unop_comp, factor_thru_image_comp_image_unop_op_inv, Quiver.Hom.unop_op, image_subobject_arrow]
 #align image_to_kernel_unop imageToKernel_unop
 
+#print homologyOp /-
 /-- Given `f, g` with `f ≫ g = 0`, the homology of `g.op, f.op` is the opposite of the homology of
 `f, g`. -/
 def homologyOp {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
@@ -79,7 +92,9 @@ def homologyOp {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
                   (by ext <;> simp only [image.fac, cokernel.π_desc, cokernel.π_desc_assoc]) ≪≫
                 kernelCompMono _ (image.ι g)).op
 #align homology_op homologyOp
+-/
 
+#print homologyUnop /-
 /-- Given morphisms `f, g` in `Vᵒᵖ` with `f ≫ g = 0`, the homology of `g.unop, f.unop` is the
 opposite of the homology of `f, g`. -/
 def homologyUnop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
@@ -93,6 +108,7 @@ def homologyUnop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0)
                   (by ext <;> simp only [image.fac, cokernel.π_desc, cokernel.π_desc_assoc]) ≪≫
                 kernelCompMono _ (image.ι g)).unop
 #align homology_unop homologyUnop
+-/
 
 end
 
@@ -104,6 +120,7 @@ section
 
 variable [Preadditive V]
 
+#print HomologicalComplex.op /-
 /-- Sends a complex `X` with objects in `V` to the corresponding complex with objects in `Vᵒᵖ`. -/
 @[simps]
 protected def op (X : HomologicalComplex V c) : HomologicalComplex Vᵒᵖ c.symm
@@ -115,7 +132,9 @@ protected def op (X : HomologicalComplex V c) : HomologicalComplex Vᵒᵖ c.sym
     intros
     rw [← op_comp, X.d_comp_d, op_zero]
 #align homological_complex.op HomologicalComplex.op
+-/
 
+#print HomologicalComplex.opSymm /-
 /-- Sends a complex `X` with objects in `V` to the corresponding complex with objects in `Vᵒᵖ`. -/
 @[simps]
 protected def opSymm (X : HomologicalComplex V c.symm) : HomologicalComplex Vᵒᵖ c
@@ -127,7 +146,9 @@ protected def opSymm (X : HomologicalComplex V c.symm) : HomologicalComplex Vᵒ
     intros
     rw [← op_comp, X.d_comp_d, op_zero]
 #align homological_complex.op_symm HomologicalComplex.opSymm
+-/
 
+#print HomologicalComplex.unop /-
 /-- Sends a complex `X` with objects in `Vᵒᵖ` to the corresponding complex with objects in `V`. -/
 @[simps]
 protected def unop (X : HomologicalComplex Vᵒᵖ c) : HomologicalComplex V c.symm
@@ -139,7 +160,9 @@ protected def unop (X : HomologicalComplex Vᵒᵖ c) : HomologicalComplex V c.s
     intros
     rw [← unop_comp, X.d_comp_d, unop_zero]
 #align homological_complex.unop HomologicalComplex.unop
+-/
 
+#print HomologicalComplex.unopSymm /-
 /-- Sends a complex `X` with objects in `Vᵒᵖ` to the corresponding complex with objects in `V`. -/
 @[simps]
 protected def unopSymm (X : HomologicalComplex Vᵒᵖ c.symm) : HomologicalComplex V c
@@ -151,9 +174,11 @@ protected def unopSymm (X : HomologicalComplex Vᵒᵖ c.symm) : HomologicalComp
     intros
     rw [← unop_comp, X.d_comp_d, unop_zero]
 #align homological_complex.unop_symm HomologicalComplex.unopSymm
+-/
 
 variable (V c)
 
+#print HomologicalComplex.opFunctor /-
 /-- Auxilliary definition for `op_equivalence`. -/
 @[simps]
 def opFunctor : (HomologicalComplex V c)ᵒᵖ ⥤ HomologicalComplex Vᵒᵖ c.symm
@@ -163,7 +188,9 @@ def opFunctor : (HomologicalComplex V c)ᵒᵖ ⥤ HomologicalComplex Vᵒᵖ c.
     { f := fun i => (f.unop.f i).op
       comm' := fun i j hij => by simp only [op_d, ← op_comp, f.unop.comm] }
 #align homological_complex.op_functor HomologicalComplex.opFunctor
+-/
 
+#print HomologicalComplex.opInverse /-
 /-- Auxilliary definition for `op_equivalence`. -/
 @[simps]
 def opInverse : HomologicalComplex Vᵒᵖ c.symm ⥤ (HomologicalComplex V c)ᵒᵖ
@@ -174,7 +201,9 @@ def opInverse : HomologicalComplex Vᵒᵖ c.symm ⥤ (HomologicalComplex V c)
       { f := fun i => (f.f i).unop
         comm' := fun i j hij => by simp only [unop_symm_d, ← unop_comp, f.comm] }
 #align homological_complex.op_inverse HomologicalComplex.opInverse
+-/
 
+#print HomologicalComplex.opUnitIso /-
 /-- Auxilliary definition for `op_equivalence`. -/
 def opUnitIso : 𝟭 (HomologicalComplex V c)ᵒᵖ ≅ opFunctor V c ⋙ opInverse V c :=
   NatIso.ofComponents
@@ -191,7 +220,9 @@ def opUnitIso : 𝟭 (HomologicalComplex V c)ᵒᵖ ≅ opFunctor V c ⋙ opInve
         comp_f, hom.iso_of_components_hom_f]
       erw [category.id_comp, category.comp_id (f.unop.f x)])
 #align homological_complex.op_unit_iso HomologicalComplex.opUnitIso
+-/
 
+#print HomologicalComplex.opCounitIso /-
 /-- Auxilliary definition for `op_equivalence`. -/
 def opCounitIso : opInverse V c ⋙ opFunctor V c ≅ 𝟭 (HomologicalComplex Vᵒᵖ c.symm) :=
   NatIso.ofComponents
@@ -204,7 +235,14 @@ def opCounitIso : opInverse V c ⋙ opFunctor V c ≅ 𝟭 (HomologicalComplex V
       simpa only [Quiver.Hom.unop_op, Quiver.Hom.op_unop, functor.comp_map, functor.id_map,
         iso.refl_hom, category.id_comp, category.comp_id, comp_f, hom.iso_of_components_hom_f] )
 #align homological_complex.op_counit_iso HomologicalComplex.opCounitIso
+-/
 
+/- warning: homological_complex.op_equivalence -> HomologicalComplex.opEquivalence is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} (V : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u2} V] (c : ComplexShape.{u1} ι) [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Equivalence.{max u1 u3, max u1 u3, max u2 u1 u3, max u2 u1 u3} (Opposite.{succ (max u2 u1 u3)} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (CategoryTheory.Category.opposite.{max u1 u3, max u2 u1 u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c))
+but is expected to have type
+  forall {ι : Type.{u1}} (V : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u2} V] (c : ComplexShape.{u1} ι) [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Equivalence.{max u1 u3, max u1 u3, max (max u1 u2) u3, max (max u1 u2) u3} (Opposite.{max (max (succ u1) (succ u2)) (succ u3)} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max (max u1 u2) u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c))
+Case conversion may be inaccurate. Consider using '#align homological_complex.op_equivalence HomologicalComplex.opEquivalenceₓ'. -/
 /-- Given a category of complexes with objects in `V`, there is a natural equivalence between its
 opposite category and a category of complexes with objects in `Vᵒᵖ`. -/
 @[simps]
@@ -222,6 +260,7 @@ def opEquivalence : (HomologicalComplex V c)ᵒᵖ ≌ HomologicalComplex Vᵒ
     exact category.comp_id _
 #align homological_complex.op_equivalence HomologicalComplex.opEquivalence
 
+#print HomologicalComplex.unopFunctor /-
 /-- Auxilliary definition for `unop_equivalence`. -/
 @[simps]
 def unopFunctor : (HomologicalComplex Vᵒᵖ c)ᵒᵖ ⥤ HomologicalComplex V c.symm
@@ -231,7 +270,9 @@ def unopFunctor : (HomologicalComplex Vᵒᵖ c)ᵒᵖ ⥤ HomologicalComplex V
     { f := fun i => (f.unop.f i).unop
       comm' := fun i j hij => by simp only [unop_d, ← unop_comp, f.unop.comm] }
 #align homological_complex.unop_functor HomologicalComplex.unopFunctor
+-/
 
+#print HomologicalComplex.unopInverse /-
 /-- Auxilliary definition for `unop_equivalence`. -/
 @[simps]
 def unopInverse : HomologicalComplex V c.symm ⥤ (HomologicalComplex Vᵒᵖ c)ᵒᵖ
@@ -242,7 +283,9 @@ def unopInverse : HomologicalComplex V c.symm ⥤ (HomologicalComplex Vᵒᵖ c)
       { f := fun i => (f.f i).op
         comm' := fun i j hij => by simp only [op_symm_d, ← op_comp, f.comm] }
 #align homological_complex.unop_inverse HomologicalComplex.unopInverse
+-/
 
+#print HomologicalComplex.unopUnitIso /-
 /-- Auxilliary definition for `unop_equivalence`. -/
 def unopUnitIso : 𝟭 (HomologicalComplex Vᵒᵖ c)ᵒᵖ ≅ unopFunctor V c ⋙ unopInverse V c :=
   NatIso.ofComponents
@@ -259,7 +302,9 @@ def unopUnitIso : 𝟭 (HomologicalComplex Vᵒᵖ c)ᵒᵖ ≅ unopFunctor V c
         comp_f, hom.iso_of_components_hom_f]
       erw [category.id_comp, category.comp_id (f.unop.f x)])
 #align homological_complex.unop_unit_iso HomologicalComplex.unopUnitIso
+-/
 
+#print HomologicalComplex.unopCounitIso /-
 /-- Auxilliary definition for `unop_equivalence`. -/
 def unopCounitIso : unopInverse V c ⋙ unopFunctor V c ≅ 𝟭 (HomologicalComplex V c.symm) :=
   NatIso.ofComponents
@@ -272,7 +317,14 @@ def unopCounitIso : unopInverse V c ⋙ unopFunctor V c ≅ 𝟭 (HomologicalCom
       simpa only [Quiver.Hom.unop_op, Quiver.Hom.op_unop, functor.comp_map, functor.id_map,
         iso.refl_hom, category.id_comp, category.comp_id, comp_f, hom.iso_of_components_hom_f] )
 #align homological_complex.unop_counit_iso HomologicalComplex.unopCounitIso
+-/
 
+/- warning: homological_complex.unop_equivalence -> HomologicalComplex.unopEquivalence is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} (V : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u2} V] (c : ComplexShape.{u1} ι) [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Equivalence.{max u1 u3, max u1 u3, max u2 u1 u3, max u2 u1 u3} (Opposite.{succ (max u2 u1 u3)} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (CategoryTheory.Category.opposite.{max u1 u3, max u2 u1 u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c))
+but is expected to have type
+  forall {ι : Type.{u1}} (V : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u2} V] (c : ComplexShape.{u1} ι) [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Equivalence.{max u1 u3, max u1 u3, max (max u2 u1) u3, max (max u1 u2) u3} (Opposite.{max (max (succ u1) (succ u2)) (succ u3)} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max (max u1 u2) u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c))
+Case conversion may be inaccurate. Consider using '#align homological_complex.unop_equivalence HomologicalComplex.unopEquivalenceₓ'. -/
 /-- Given a category of complexes with objects in `Vᵒᵖ`, there is a natural equivalence between its
 opposite category and a category of complexes with objects in `V`. -/
 @[simps]
@@ -292,9 +344,21 @@ def unopEquivalence : (HomologicalComplex Vᵒᵖ c)ᵒᵖ ≌ HomologicalComple
 
 variable {V c}
 
+/- warning: homological_complex.op_functor_additive -> HomologicalComplex.opFunctor_additive is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} V] {c : ComplexShape.{u1} ι} [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Functor.Additive.{max u2 u1 u3, max u2 u1 u3, max u1 u3, max u1 u3} (Opposite.{succ (max u2 u1 u3)} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max u2 u1 u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Opposite.preadditive.{max u2 u1 u3, max u1 u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.CategoryTheory.preadditive.{u3, u2, u1} ι V _inst_1 _inst_2 c)) (HomologicalComplex.CategoryTheory.preadditive.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Opposite.preadditive.{u2, u3} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.opFunctor.{u1, u2, u3} ι V _inst_1 c _inst_2)
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} V] {c : ComplexShape.{u1} ι} [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Functor.Additive.{max (max u1 u2) u3, max (max u1 u2) u3, max u1 u3, max u1 u3} (Opposite.{max (max (succ u1) (succ u2)) (succ u3)} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max (max u1 u2) u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.instPreadditiveOppositeOpposite.{max (max u1 u2) u3, max u1 u3} (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) c) (HomologicalComplex.instPreadditiveHomologicalComplexPreadditiveHasZeroMorphismsInstCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 _inst_2 c)) (HomologicalComplex.instPreadditiveHomologicalComplexPreadditiveHasZeroMorphismsInstCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.instPreadditiveOppositeOpposite.{u2, u3} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.opFunctor.{u1, u2, u3} ι V _inst_1 c _inst_2)
+Case conversion may be inaccurate. Consider using '#align homological_complex.op_functor_additive HomologicalComplex.opFunctor_additiveₓ'. -/
 instance opFunctor_additive : (@opFunctor ι V _ c _).Additive where
 #align homological_complex.op_functor_additive HomologicalComplex.opFunctor_additive
 
+/- warning: homological_complex.unop_functor_additive -> HomologicalComplex.unopFunctor_additive is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} V] {c : ComplexShape.{u1} ι} [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Functor.Additive.{max u2 u1 u3, max u2 u1 u3, max u1 u3, max u1 u3} (Opposite.{succ (max u2 u1 u3)} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max u2 u1 u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Opposite.preadditive.{max u2 u1 u3, max u1 u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.CategoryTheory.category.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.CategoryTheory.preadditive.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Opposite.preadditive.{u2, u3} V _inst_1 _inst_2) c)) (HomologicalComplex.CategoryTheory.preadditive.{u3, u2, u1} ι V _inst_1 _inst_2 (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.unopFunctor.{u1, u2, u3} ι V _inst_1 c _inst_2)
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} V] {c : ComplexShape.{u1} ι} [_inst_2 : CategoryTheory.Preadditive.{u3, u2} V _inst_1], CategoryTheory.Functor.Additive.{max (max u1 u2) u3, max (max u1 u2) u3, max u1 u3, max u1 u3} (Opposite.{max (max (succ u1) (succ u2)) (succ u3)} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.Category.opposite.{max u1 u3, max (max u1 u2) u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2) (ComplexShape.symm.{u1} ι c)) (CategoryTheory.instPreadditiveOppositeOpposite.{max (max u1 u2) u3, max u1 u3} (HomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.Limits.hasZeroMorphismsOpposite.{u3, u2} V _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u2} V _inst_1 _inst_2)) c) (HomologicalComplex.instPreadditiveHomologicalComplexPreadditiveHasZeroMorphismsInstCategoryHomologicalComplex.{u3, u2, u1} ι (Opposite.{succ u2} V) (CategoryTheory.Category.opposite.{u3, u2} V _inst_1) (CategoryTheory.instPreadditiveOppositeOpposite.{u2, u3} V _inst_1 _inst_2) c)) (HomologicalComplex.instPreadditiveHomologicalComplexPreadditiveHasZeroMorphismsInstCategoryHomologicalComplex.{u3, u2, u1} ι V _inst_1 _inst_2 (ComplexShape.symm.{u1} ι c)) (HomologicalComplex.unopFunctor.{u1, u2, u3} ι V _inst_1 c _inst_2)
+Case conversion may be inaccurate. Consider using '#align homological_complex.unop_functor_additive HomologicalComplex.unopFunctor_additiveₓ'. -/
 instance unopFunctor_additive : (@unopFunctor ι V _ c _).Additive where
 #align homological_complex.unop_functor_additive HomologicalComplex.unopFunctor_additive
 
@@ -302,19 +366,24 @@ end
 
 variable [Abelian V] (C : HomologicalComplex V c) (i : ι)
 
+#print HomologicalComplex.homologyOpDef /-
 /-- Auxilliary tautological definition for `homology_op`. -/
 def homologyOpDef :
     C.op.homology i ≅
       homology (C.dFrom i).op (C.dTo i).op (by rw [← op_comp, C.d_to_comp_d_from i, op_zero]) :=
   Iso.refl _
 #align homological_complex.homology_op_def HomologicalComplex.homologyOpDef
+-/
 
+#print HomologicalComplex.homologyOp /-
 /-- Given a complex `C` of objects in `V`, the `i`th homology of its 'opposite' complex (with
 objects in `Vᵒᵖ`) is the opposite of the `i`th homology of `C`. -/
 def homologyOp : C.op.homology i ≅ Opposite.op (C.homology i) :=
   homologyOpDef _ _ ≪≫ homologyOp _ _ _
 #align homological_complex.homology_op HomologicalComplex.homologyOp
+-/
 
+#print HomologicalComplex.homologyUnopDef /-
 /-- Auxilliary tautological definition for `homology_unop`. -/
 def homologyUnopDef (C : HomologicalComplex Vᵒᵖ c) :
     C.unop.homology i ≅
@@ -322,13 +391,16 @@ def homologyUnopDef (C : HomologicalComplex Vᵒᵖ c) :
         (by rw [← unop_comp, C.d_to_comp_d_from i, unop_zero]) :=
   Iso.refl _
 #align homological_complex.homology_unop_def HomologicalComplex.homologyUnopDef
+-/
 
+#print HomologicalComplex.homologyUnop /-
 /-- Given a complex `C` of objects in `Vᵒᵖ`, the `i`th homology of its 'opposite' complex (with
 objects in `V`) is the opposite of the `i`th homology of `C`. -/
 def homologyUnop (C : HomologicalComplex Vᵒᵖ c) :
     C.unop.homology i ≅ Opposite.unop (C.homology i) :=
   homologyUnopDef _ _ ≪≫ homologyUnop _ _ _
 #align homological_complex.homology_unop HomologicalComplex.homologyUnop
+-/
 
 end HomologicalComplex
 
Diff
@@ -108,7 +108,7 @@ variable [Preadditive V]
 @[simps]
 protected def op (X : HomologicalComplex V c) : HomologicalComplex Vᵒᵖ c.symm
     where
-  x i := op (X.x i)
+  pt i := op (X.pt i)
   d i j := (X.d j i).op
   shape' i j hij := by rw [X.shape j i hij, op_zero]
   d_comp_d' := by
@@ -120,7 +120,7 @@ protected def op (X : HomologicalComplex V c) : HomologicalComplex Vᵒᵖ c.sym
 @[simps]
 protected def opSymm (X : HomologicalComplex V c.symm) : HomologicalComplex Vᵒᵖ c
     where
-  x i := op (X.x i)
+  pt i := op (X.pt i)
   d i j := (X.d j i).op
   shape' i j hij := by rw [X.shape j i hij, op_zero]
   d_comp_d' := by
@@ -132,7 +132,7 @@ protected def opSymm (X : HomologicalComplex V c.symm) : HomologicalComplex Vᵒ
 @[simps]
 protected def unop (X : HomologicalComplex Vᵒᵖ c) : HomologicalComplex V c.symm
     where
-  x i := unop (X.x i)
+  pt i := unop (X.pt i)
   d i j := (X.d j i).unop
   shape' i j hij := by rw [X.shape j i hij, unop_zero]
   d_comp_d' := by
@@ -144,7 +144,7 @@ protected def unop (X : HomologicalComplex Vᵒᵖ c) : HomologicalComplex V c.s
 @[simps]
 protected def unopSymm (X : HomologicalComplex Vᵒᵖ c.symm) : HomologicalComplex V c
     where
-  x i := unop (X.x i)
+  pt i := unop (X.pt i)
   d i j := (X.d j i).unop
   shape' i j hij := by rw [X.shape j i hij, unop_zero]
   d_comp_d' := by

Changes in mathlib4

mathlib3
mathlib4
refactor(Algebra/Homology): use the new homology API (#8706)

This PR refactors the construction of left derived functors using the new homology API: this also affects the dependencies (Ext functors, group cohomology, local cohomology). As a result, the old homology API is no longer used in any significant way in mathlib. Then, with this PR, the homology refactor is essentially complete.

The organization of the files was made more coherent: the definition of a projective resolution is in Preadditive.ProjectiveResolution, the existence of resolutions when there are enough projectives is shown in Abelian.ProjectiveResolution, and the left derived functor is constructed in Abelian.LeftDerived; the dual results are in Preadditive.InjectiveResolution, Abelian.InjectiveResolution and Abelian.RightDerived.

Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>

Diff
@@ -1,11 +1,12 @@
 /-
 Copyright (c) 2022 Amelia Livingston. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
-Authors: Johan Commelin, Amelia Livingston
+Authors: Johan Commelin, Amelia Livingston, Joël Riou
 -/
 import Mathlib.CategoryTheory.Abelian.Opposite
 import Mathlib.CategoryTheory.Abelian.Homology
 import Mathlib.Algebra.Homology.Additive
+import Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex
 
 #align_import algebra.homology.opposite from "leanprover-community/mathlib"@"8c75ef3517d4106e89fe524e6281d0b0545f47fc"
 
@@ -251,6 +252,26 @@ instance opFunctor_additive : (@opFunctor ι V _ c _).Additive where
 instance unopFunctor_additive : (@unopFunctor ι V _ c _).Additive where
 #align homological_complex.unop_functor_additive HomologicalComplex.unopFunctor_additive
 
+instance (K : HomologicalComplex V c) (i : ι) [K.HasHomology i] :
+    K.op.HasHomology i :=
+  (inferInstance : (K.sc i).op.HasHomology)
+
+instance (K : HomologicalComplex Vᵒᵖ c) (i : ι) [K.HasHomology i] :
+    K.unop.HasHomology i :=
+  (inferInstance : (K.sc i).unop.HasHomology)
+
+/-- If `K` is a homological complex, then the homology of `K.op` identifies to
+the opposite of the homology of `K`. -/
+def homologyOp (K : HomologicalComplex V c) (i : ι) [K.HasHomology i] :
+    K.op.homology i ≅ op (K.homology i) :=
+  (K.sc i).homologyOpIso
+
+/-- If `K` is a homological complex in the opposite category,
+then the homology of `K.unop` identifies to the opposite of the homology of `K`. -/
+def homologyUnop (K : HomologicalComplex Vᵒᵖ c) (i : ι) [K.HasHomology i] :
+    K.unop.homology i ≅ unop (K.homology i) :=
+  (K.unop.homologyOp i).unop
+
 end
 
 variable [Abelian V] (C : HomologicalComplex V c) (i : ι)
refactor: introduce the new homology API for homological complex and rename the old one (#7954)

This PR renames definitions of the current homology API (adding a ' to homology, cycles, QuasiIso) so as to create space for the development of the new homology API of homological complexes: this PR also contains the new definition of HomologicalComplex.homology which involves the homology theory of short complexes.

Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>

Diff
@@ -64,23 +64,24 @@ theorem imageToKernel_unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f
 
 /-- Given `f, g` with `f ≫ g = 0`, the homology of `g.op, f.op` is the opposite of the homology of
 `f, g`. -/
-def homologyOp {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
-    homology g.op f.op (by rw [← op_comp, w, op_zero]) ≅ Opposite.op (homology f g w) :=
+def homology'Op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
+    homology' g.op f.op (by rw [← op_comp, w, op_zero]) ≅ Opposite.op (homology' f g w) :=
   cokernelIsoOfEq (imageToKernel_op _ _ w) ≪≫ cokernelEpiComp _ _ ≪≫ cokernelCompIsIso _ _ ≪≫
-    cokernelOpOp _ ≪≫ (homologyIsoKernelDesc _ _ _ ≪≫
+    cokernelOpOp _ ≪≫ (homology'IsoKernelDesc _ _ _ ≪≫
     kernelIsoOfEq (by ext; simp only [image.fac, cokernel.π_desc, cokernel.π_desc_assoc]) ≪≫
     kernelCompMono _ (image.ι g)).op
-#align homology_op homologyOp
+#align homology_op homology'Op
 
 /-- Given morphisms `f, g` in `Vᵒᵖ` with `f ≫ g = 0`, the homology of `g.unop, f.unop` is the
 opposite of the homology of `f, g`. -/
-def homologyUnop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
-    homology g.unop f.unop (by rw [← unop_comp, w, unop_zero]) ≅ Opposite.unop (homology f g w) :=
+def homology'Unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
+    homology' g.unop f.unop (by rw [← unop_comp, w, unop_zero]) ≅
+      Opposite.unop (homology' f g w) :=
   cokernelIsoOfEq (imageToKernel_unop _ _ w) ≪≫ cokernelEpiComp _ _ ≪≫ cokernelCompIsIso _ _ ≪≫
-    cokernelUnopUnop _ ≪≫ (homologyIsoKernelDesc _ _ _ ≪≫
+    cokernelUnopUnop _ ≪≫ (homology'IsoKernelDesc _ _ _ ≪≫
     kernelIsoOfEq (by ext; simp only [image.fac, cokernel.π_desc, cokernel.π_desc_assoc]) ≪≫
     kernelCompMono _ (image.ι g)).unop
-#align homology_unop homologyUnop
+#align homology_unop homology'Unop
 
 end
 
@@ -255,30 +256,30 @@ end
 variable [Abelian V] (C : HomologicalComplex V c) (i : ι)
 
 /-- Auxiliary tautological definition for `homologyOp`. -/
-def homologyOpDef : C.op.homology i ≅
-    _root_.homology (C.dFrom i).op (C.dTo i).op (by rw [← op_comp, C.dTo_comp_dFrom i, op_zero]) :=
+def homology'OpDef : C.op.homology' i ≅
+    _root_.homology' (C.dFrom i).op (C.dTo i).op (by rw [← op_comp, C.dTo_comp_dFrom i, op_zero]) :=
   Iso.refl _
-#align homological_complex.homology_op_def HomologicalComplex.homologyOpDef
+#align homological_complex.homology_op_def HomologicalComplex.homology'OpDef
 
 /-- Given a complex `C` of objects in `V`, the `i`th homology of its 'opposite' complex (with
 objects in `Vᵒᵖ`) is the opposite of the `i`th homology of `C`. -/
-nonrec def homologyOp : C.op.homology i ≅ Opposite.op (C.homology i) :=
-  homologyOpDef _ _ ≪≫ homologyOp _ _ _
-#align homological_complex.homology_op HomologicalComplex.homologyOp
+nonrec def homology'Op : C.op.homology' i ≅ Opposite.op (C.homology' i) :=
+  homology'OpDef _ _ ≪≫ homology'Op _ _ _
+#align homological_complex.homology_op HomologicalComplex.homology'Op
 
 /-- Auxiliary tautological definition for `homologyUnop`. -/
-def homologyUnopDef (C : HomologicalComplex Vᵒᵖ c) :
-    C.unop.homology i ≅
-      _root_.homology (C.dFrom i).unop (C.dTo i).unop
+def homology'UnopDef (C : HomologicalComplex Vᵒᵖ c) :
+    C.unop.homology' i ≅
+      _root_.homology' (C.dFrom i).unop (C.dTo i).unop
         (by rw [← unop_comp, C.dTo_comp_dFrom i, unop_zero]) :=
   Iso.refl _
-#align homological_complex.homology_unop_def HomologicalComplex.homologyUnopDef
+#align homological_complex.homology_unop_def HomologicalComplex.homology'UnopDef
 
 /-- Given a complex `C` of objects in `Vᵒᵖ`, the `i`th homology of its 'opposite' complex (with
 objects in `V`) is the opposite of the `i`th homology of `C`. -/
-nonrec def homologyUnop (C : HomologicalComplex Vᵒᵖ c) :
-    C.unop.homology i ≅ Opposite.unop (C.homology i) :=
-  homologyUnopDef _ _ ≪≫ homologyUnop _ _ _
-#align homological_complex.homology_unop HomologicalComplex.homologyUnop
+nonrec def homology'Unop (C : HomologicalComplex Vᵒᵖ c) :
+    C.unop.homology' i ≅ Opposite.unop (C.homology' i) :=
+  homology'UnopDef _ _ ≪≫ homology'Unop _ _ _
+#align homological_complex.homology_unop HomologicalComplex.homology'Unop
 
 end HomologicalComplex
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -34,7 +34,7 @@ open Opposite CategoryTheory CategoryTheory.Limits
 
 section
 
-variable {V : Type _} [Category V] [Abelian V]
+variable {V : Type*} [Category V] [Abelian V]
 
 theorem imageToKernel_op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
     imageToKernel g.op f.op (by rw [← op_comp, w, op_zero]) =
@@ -86,7 +86,7 @@ end
 
 namespace HomologicalComplex
 
-variable {ι V : Type _} [Category V] {c : ComplexShape ι}
+variable {ι V : Type*} [Category V] {c : ComplexShape ι}
 
 section
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2022 Amelia Livingston. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Amelia Livingston
-
-! This file was ported from Lean 3 source module algebra.homology.opposite
-! leanprover-community/mathlib commit 8c75ef3517d4106e89fe524e6281d0b0545f47fc
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Abelian.Opposite
 import Mathlib.CategoryTheory.Abelian.Homology
 import Mathlib.Algebra.Homology.Additive
 
+#align_import algebra.homology.opposite from "leanprover-community/mathlib"@"8c75ef3517d4106e89fe524e6281d0b0545f47fc"
+
 /-!
 # Opposite categories of complexes
 Given a preadditive category `V`, the opposite of its category of chain complexes is equivalent to
feat: more consistent use of ext, and updating porting notes. (#5242)

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

Diff
@@ -71,9 +71,7 @@ def homologyOp {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
     homology g.op f.op (by rw [← op_comp, w, op_zero]) ≅ Opposite.op (homology f g w) :=
   cokernelIsoOfEq (imageToKernel_op _ _ w) ≪≫ cokernelEpiComp _ _ ≪≫ cokernelCompIsIso _ _ ≪≫
     cokernelOpOp _ ≪≫ (homologyIsoKernelDesc _ _ _ ≪≫
-    kernelIsoOfEq (by
-    -- Porting note: broken ext
-      apply coequalizer.hom_ext; simp only [image.fac, cokernel.π_desc, cokernel.π_desc_assoc]) ≪≫
+    kernelIsoOfEq (by ext; simp only [image.fac, cokernel.π_desc, cokernel.π_desc_assoc]) ≪≫
     kernelCompMono _ (image.ι g)).op
 #align homology_op homologyOp
 
@@ -83,9 +81,7 @@ def homologyUnop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0)
     homology g.unop f.unop (by rw [← unop_comp, w, unop_zero]) ≅ Opposite.unop (homology f g w) :=
   cokernelIsoOfEq (imageToKernel_unop _ _ w) ≪≫ cokernelEpiComp _ _ ≪≫ cokernelCompIsIso _ _ ≪≫
     cokernelUnopUnop _ ≪≫ (homologyIsoKernelDesc _ _ _ ≪≫
-    kernelIsoOfEq (by
-    -- Porting note: broken ext
-      apply coequalizer.hom_ext; simp only [image.fac, cokernel.π_desc, cokernel.π_desc_assoc]) ≪≫
+    kernelIsoOfEq (by ext; simp only [image.fac, cokernel.π_desc, cokernel.π_desc_assoc]) ≪≫
     kernelCompMono _ (image.ι g)).unop
 #align homology_unop homologyUnop
 
chore: review of automation in category theory (#4793)

Clean up of automation in the category theory library. Leaving out unnecessary proof steps, or fields done by aesop_cat, and making more use of available autoparameters.

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

Diff
@@ -175,11 +175,7 @@ def opUnitIso : 𝟭 (HomologicalComplex V c)ᵒᵖ ≅ opFunctor V c ⋙ opInve
 /-- Auxiliary definition for `opEquivalence`. -/
 def opCounitIso : opInverse V c ⋙ opFunctor V c ≅ 𝟭 (HomologicalComplex Vᵒᵖ c.symm) :=
   NatIso.ofComponents
-    (fun X => HomologicalComplex.Hom.isoOfComponents (fun i => Iso.refl _) fun i j _ => by simp)
-    (by
-      intro X Y f
-      ext
-      simp)
+    fun X => HomologicalComplex.Hom.isoOfComponents fun i => Iso.refl _
 #align homological_complex.op_counit_iso HomologicalComplex.opCounitIso
 
 /-- Given a category of complexes with objects in `V`, there is a natural equivalence between its
@@ -235,11 +231,7 @@ def unopUnitIso : 𝟭 (HomologicalComplex Vᵒᵖ c)ᵒᵖ ≅ unopFunctor V c
 /-- Auxiliary definition for `unopEquivalence`. -/
 def unopCounitIso : unopInverse V c ⋙ unopFunctor V c ≅ 𝟭 (HomologicalComplex V c.symm) :=
   NatIso.ofComponents
-    (fun X => HomologicalComplex.Hom.isoOfComponents (fun i => Iso.refl _) fun i j _ => by simp)
-    (by
-      intro X Y f
-      ext
-      simp)
+    fun X => HomologicalComplex.Hom.isoOfComponents fun i => Iso.refl _
 #align homological_complex.unop_counit_iso HomologicalComplex.unopCounitIso
 
 /-- Given a category of complexes with objects in `Vᵒᵖ`, there is a natural equivalence between its
feat: port Algebra.Homology.Opposite (#3998)

Co-authored-by: Moritz Firsching <firsching@google.com> Co-authored-by: Matthew Ballard <matt@mrb.email>

Dependencies 8 + 538

539 files ported (98.5%)
209052 lines ported (98.5%)
Show graph

The unported dependencies are