proposition: Lemma AdditiveCokernelToCoequalizer_isCoequalizer {x y : ob A} (f g : x --> y) (CK : Cokernel (to_Zero A) (to_binop _ _ f (to_inv g))) : isCoequalizer f g (CokernelArrow CK) (AdditiveCokernelToCoequalizer_eq1 f g CK).
proof: Proof. use make_isCoequalizer. intros w0 h H'. use unique_exists. - use CokernelOut. + exact h. + use to_rcan. * exact (g · h). * rewrite to_lunax''. rewrite <- to_postmor_linear'. rewrite to_assoc. rewrite (@to_linvax' A (to_Zero A)). rewrite to_runax''. apply H'. - cbn. use CokernelCommutes. - intros y0. apply to_has_homsets. - intros y0 X. cbn in X. cbn. use (CokernelArrowisEpi _ CK). rewrite CokernelCommutes. exact X. Qed.
imports: UniMath.Foundations.PartD UniMath.Foundations.Propositions UniMath.MoreFoundations.Propositions UniMath.Foundations.Sets UniMath.Algebra.Monoids UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Monics UniMath.CategoryTheory.Epis UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.CategoriesWithBinOps UniMath.CategoryTheory.PrecategoriesWithAbgrops UniMath.CategoryTheory.PreAdditive UniMath.CategoryTheory.opp_precat UniMath.CategoryTheory.Limits.Zero UniMath.CategoryTheory.Limits.Opp UniMath.CategoryTheory.Limits.BinCoproducts UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.Limits.Equalizers UniMath.CategoryTheory.Limits.Coequalizers UniMath.CategoryTheory.Limits.Kernels UniMath.CategoryTheory.Limits.Cokernels UniMath.CategoryTheory.Limits.BinDirectSums