proposition: Lemma AbelianPreCat_homset_comm {X Y : A} (f g : X --> Y) : Abelian_op _ _ f g = Abelian_op _ _ g f.
proof: Proof. set (tmp1 := AbelianPreCat_homset_zero_left f). apply (maponpaths (λ h : _, Abelian_op X Y h g)) in tmp1. apply pathsinv0 in tmp1. use (pathscomp0 tmp1). clear tmp1. set (tmp2 := AbelianPreCat_homset_zero_left g). apply (maponpaths (λ h : _, Abelian_op X Y h f)) in tmp2. use (pathscomp0 _ tmp2). clear tmp2. unfold Abelian_op. rewrite (AbelianPreCat_op_eq3 _ _ _ g). rewrite (AbelianPreCat_op_eq3 _ _ _ f). rewrite (Abeliain_precategory_homset_comm' _ g). 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