proposition: Lemma ExactPullback' {M : ExactCategory} {A B C A':M} (i : A <-- B) (p : B <-- C) (pr : isExact2 p i) (r : A <-- A') : ∃ (B':M) (i':A'<--B') (s:B<--B') (p':B'<--C), s∘p' = p ∧ isPullback' (M:=M) i r s i' ∧ isExact2 p' i'.
proof: Proof. assert (I := ExactToAdmEpi pr). assert (R := EC_PullbackEpi i r I). use (hinhfun _ R); clear R; intros [pb J]. set (pbmap := PairPullbackMap (EC_ExactToKernelCokernel pr) r pb). set (p' := pr1 pbmap). exists pb. exists (PullbackPr2 pb). exists (PullbackPr1 pb). exists p'. split. { exact (pr12 pbmap). } split. { apply Pullback_to_isPullback'. } { use ExactSequenceFromEpi. { exact (PairPullbackKernel i p (EC_ExactToKernelCokernel pr) r pb). } exact J. } 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