proposition: Lemma Kernel_opp_isCokernel {y z : C} (f : C⟦y, z⟧) (Z : Zero C) (K : @Kernel C Z y z f) : isCokernel (Zero_opp Z) f (KernelArrow K) (Kernel_opp_eq f Z K).
proof: Proof. use make_isCokernel. - intros w h H'. cbn in H'. use unique_exists. + rewrite <- ZeroArrow_opp in H'. exact (KernelIn Z K w h H'). + cbn. use KernelCommutes. + intros y0. apply (has_homsets_opp hs). + cbn. intros y0 X. use KernelInsEq. rewrite KernelCommutes. exact X. Qed.
imports: UniMath.Foundations.PartD UniMath.Foundations.Propositions UniMath.Foundations.Sets UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Monics UniMath.CategoryTheory.Epis UniMath.CategoryTheory.opp_precat UniMath.CategoryTheory.Limits.Initial UniMath.CategoryTheory.Limits.Terminal UniMath.CategoryTheory.Limits.Zero UniMath.CategoryTheory.Limits.Equalizers UniMath.CategoryTheory.Limits.Coequalizers UniMath.CategoryTheory.Limits.Kernels UniMath.CategoryTheory.Limits.Cokernels UniMath.CategoryTheory.Limits.Pushouts UniMath.CategoryTheory.Limits.Pullbacks UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.Limits.BinCoproducts