Lemma CokernelEndo_is_identity {x y : C} {f : x --> y} {CK : Cokernel f} (φ : C⟦CK, CK⟧) (H : (CokernelArrow CK) · φ = CokernelArrow CK) : identity CK = φ. Proof. set (H1 := tpair ((fun φ' : C⟦CK, CK⟧ => _ · φ' = _)) φ H). assert (H2 : identity_is_CokernelOut CK = H1). - apply proofirrelevancecontr. apply (CokernelisCokernel CK). apply CokernelCompZero. - apply (base_paths _ _ H2). Qed.
Require Import UniMath.Foundations.PartD. Require Import UniMath.Foundations.Propositions. Require Import UniMath.Foundations.Sets. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Epis. Require Import UniMath.CategoryTheory.Limits.Coequalizers. Require Import UniMath.CategoryTheory.Limits.Zero. - exact (ZeroArrowFrom w). - intros y X. cbn in X. use ArrowsFromZero.