proposition: Lemma ExactSequenceFromMono {M : ExactCategory} {A B C:M} (i : A --> B) (p : B --> C) : isCokernel' i p -> isAdmissibleMonomorphism i -> isExact2 i p.
proof: Proof. intros co mo. apply (squash_to_hProp mo); clear mo; intros [C' [p' e]]. assert (co' := pr2 (EC_ExactToKernelCokernel e) : isCokernel' i p'). assert (R := iscontrpr1 (CokernelUniqueness co' co)). induction R as [R r]. use (EC_IsomorphicToExact _ e). exists (identity_z_iso _). exists (identity_z_iso _). exists R. split. - split. + exact (id_left _ @ ! id_right _). + exact (id_right _ @ ! id_left _). - split. + exact (id_left _ @ ! r). + exact (r @ !id_left _). 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