proposition: Lemma AdditiveKernelToEqualizer_isEqualizer {x y : ob A} (f g : x --> y) (K : Kernel (to_Zero A) (to_binop _ _ f (to_inv g))) : isEqualizer f g (KernelArrow K) (AdditiveKernelToEqualizer_eq1 f g K).
proof: Proof. use make_isEqualizer. intros w h H'. use unique_exists. - use KernelIn. + exact h. + set (X := @to_premor_linear' A). rewrite X. etrans. { apply maponpaths_2. apply H'. } rewrite <- to_premor_linear'. rewrite (@to_rinvax' A (to_Zero A)). apply ZeroArrow_comp_right. - cbn. use KernelCommutes. - intros y0. apply to_has_homsets. - intros y0 X. cbn in X. use (KernelArrowisMonic _ K). etrans. 2 : { apply pathsinv0. apply KernelCommutes. } 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