proposition: Lemma AbelianPreCat_homset_zero_right {X Y : A} (f : X --> Y) : Abelian_op _ _ f (AbelianPreCat_homset_zero X Y) = f.
proof: Proof. unfold AbelianPreCat_homset_zero. unfold Abelian_op. unfold Abelian_minus_op at 2. use (pathscomp0 _ (AbelianPreCat_homset_zero_right' f)). set (bpY := to_BinProducts A Y Y). assert (e : (BinProductArrow A bpY (ZeroArrow (to_Zero A) X Y) (ZeroArrow (to_Zero A) X Y)) · CokernelArrow (CokernelOfDiagonal bpY) = ZeroArrow (to_Zero A) _ _ ). { use (pathscomp0 _ (ZeroArrow_comp_left A (to_Zero A) _ _ _ (CokernelArrow (CokernelOfDiagonal bpY)))). apply cancel_postcomposition. use BinProductArrowsEq. - rewrite BinProductPr1Commutes. rewrite ZeroArrow_comp_left. apply idpath. - rewrite BinProductPr2Commutes. rewrite ZeroArrow_comp_left. apply idpath. } rewrite e. apply idpath. Qed.
imports: UniMath.Foundations.PartD UniMath.Foundations.Propositions UniMath.Foundations.Sets UniMath.Algebra.Monoids UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.Limits.Zero UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.Limits.BinCoproducts 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.BinDirectSums UniMath.CategoryTheory.Monics UniMath.CategoryTheory.Epis UniMath.CategoryTheory.CategoriesWithBinOps UniMath.CategoryTheory.PrecategoriesWithAbgrops UniMath.CategoryTheory.PreAdditive UniMath.CategoryTheory.Additive UniMath.CategoryTheory.Abelian