Lemma EpiPushoutisEpi {a b c : C} (E : Epi _ a b) (g : a --> c) (PB : Pushout E g) : isEpi (PushoutIn2 PB). Proof. apply make_isEpi. intros z g0 h X. use (MorphismsOutofPushoutEqual (isPushout_Pushout PB) _ _ _ X). set (X0 := maponpaths (λ f, g · f) X); simpl in X0. rewrite assoc in X0. rewrite assoc in X0. rewrite <- (PushoutSqrCommutes PB) in X0. rewrite <- assoc in X0. rewrite <- assoc in X0. apply (pr2 E _ _ _) in X0. apply X0. Defined.
Require Import UniMath.Foundations.PartD. Require Import UniMath.Foundations.Propositions. Require Import UniMath.Foundations.Sets. Require Import UniMath.MoreFoundations.Tactics. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Core.TransportMorphisms. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.Limits.Initial. Require Import UniMath.CategoryTheory.Limits.BinCoproducts. Require Import UniMath.CategoryTheory.Limits.Coequalizers. Require Import UniMath.CategoryTheory.Epis. Require Import UniMath.CategoryTheory.Core.Functors.