proposition: Lemma MapPlusIdentityToPullback {M:ExactCategory} {A B:M} (f:A-->B) (C:M) (AC : BinDirectSum A C) (BC : BinDirectSum B C) : isPullback (MapPlusIdentityToCommSq f C AC BC).
proof: Proof. intros T g h e. apply iscontraprop1. - apply invproofirrelevance. intros [p [P P']] [q [Q Q']]. apply subtypePath. { intros r. apply isapropdirprod; apply to_has_homsets. } cbn. clear P Q. refine (! id_right _ @ _ @ id_right _). rewrite <- (to_IdIn1 AC). rewrite 2 assoc. induction (!P'), (!Q'). reflexivity. - exists (h · π₁). split. + refine (_ @ id_right _). rewrite <- (to_IdIn1 BC). rewrite (assoc g). rewrite e. rewrite (assoc' h _ π₁). unfold directSumMap. unfold BinDirectSumIndAr. rewrite BinDirectSumPr1Commutes. rewrite assoc. reflexivity. + refine (_ @ id_right _). rewrite <- (to_BinOpId' AC). rewrite rightDistribute. rewrite assoc. refine (! runax (Hom_add _ _ _) _ @ _). apply maponpaths. rewrite assoc. apply pathsinv0. assert (K : h · π₂ = 0). { refine ( _ @ maponpaths (λ w, w · π₂) (!e) @ _ ). - rewrite assoc'. unfold directSumMap. unfold BinDirectSumIndAr. rewrite BinDirectSumPr2Commutes. rewrite id_right. reflexivity. - rewrite assoc'. rewrite (to_Unel1 BC). unfold to_unel. apply zeroRight. } rewrite K. apply zeroLeft. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.Notations UniMath.MoreFoundations.PartA UniMath.Algebra.BinaryOperations UniMath.Algebra.Monoids UniMath.Algebra.Groups UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Monics UniMath.CategoryTheory.Epis UniMath.CategoryTheory.Limits.Zero UniMath.CategoryTheory.Limits.Kernels UniMath.CategoryTheory.Limits.Cokernels UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.Limits.BinCoproducts UniMath.CategoryTheory.Limits.Pullbacks UniMath.CategoryTheory.Limits.Pushouts UniMath.CategoryTheory.Limits.BinDirectSums UniMath.CategoryTheory.Limits.Opp UniMath.CategoryTheory.CategoriesWithBinOps UniMath.CategoryTheory.opp_precat UniMath.CategoryTheory.PrecategoriesWithAbgrops UniMath.CategoryTheory.PreAdditive UniMath.CategoryTheory.Morphisms UniMath.CategoryTheory.Additive UniMath.CategoryTheory.Subcategory.Full UniMath.MoreFoundations.Propositions