Lemma KernelInsEq {y z: C} {g : y --> z} (K : Kernel g) {w : C} (φ1 φ2 : C⟦w, K⟧) (H : φ1 · (KernelArrow K) = φ2 · (KernelArrow K)) : φ1 = φ2. Proof. assert (H1 : φ1 · (KernelArrow K) · g = ZeroArrow Z _ _). { rewrite <- assoc. rewrite KernelCompZero. apply ZeroArrow_comp_right. } rewrite (KernelInUnique (KernelisKernel K) H1 (idpath _)). apply pathsinv0. set (tmp := pr2 (KernelisKernel K w (φ1 · KernelArrow K) H1) (tpair _ φ2 (! H))). exact (base_paths _ _ tmp). 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.Monics. Require Import UniMath.CategoryTheory.Limits.Equalizers. Require Import UniMath.CategoryTheory.Limits.Zero. isKernel (ZeroArrowFrom x) (identity x) (ArrowsFromZero C Z x (ZeroArrowFrom x · identity x) (ZeroArrow Z Z x)). - exact (ZeroArrowFrom x). - use ArrowsFromZero.