algebra.homology.opposite
⟷
Mathlib.Algebra.Homology.Opposite
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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]) =
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/f8c79b0a623404854a2902b836eac32156fd7712
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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>
@@ -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 : ι)
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>
@@ -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
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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
@@ -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
@@ -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
@@ -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
The unported dependencies are