Lemma MonicPullbackisMonic' {a b c : C} (f : b --> a) (M : Monic _ c a) (PB : Pullback f M) : isMonic (PullbackPr1 PB). Proof. apply make_isMonic. intros x g h X. use (MorphismsIntoPullbackEqual (isPullback_Pullback PB) _ _ _ X). set (X0 := maponpaths (λ f', f' · f) X); simpl in X0. rewrite <- assoc in X0. rewrite <- assoc in X0. rewrite (PullbackSqrCommutes PB) in X0. rewrite assoc in X0. rewrite assoc in X0. apply (pr2 M _ _ _) in X0. apply X0. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. 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.Core.Functors. Require Import UniMath.CategoryTheory.Limits.Terminal. Require Import UniMath.CategoryTheory.Limits.BinProducts. Require Import UniMath.CategoryTheory.Limits.Equalizers. Require Import UniMath.CategoryTheory.FunctorCategory. Require Import UniMath.CategoryTheory.Monics. Definition UnivProductFromPullback (c d a : C) (f : a --> c) (g : a --> d): exists (UnivProductFromPullback c d a f g). Definition BinProductsFromPullbacks : BinProducts C := BinProduct_Pullback.