Proposition comp_is_coreflection {C : two_cat} {x y z : C} {f : x --> y} {Hf : left_adjoint (B := two_cat_to_bicat C) f} (Hf' : is_coreflection f Hf) {g : y --> z} {Hg : left_adjoint (B := two_cat_to_bicat C) g} (Hg' : is_coreflection g Hg) : is_coreflection _ (comp_left_adjoint _ _ Hf Hg). Proof. simple refine (_ ,, _). - cbn. refine (_ @ assoc (C := C) _ _ _). refine (!_). etrans. { apply maponpaths. refine (assoc (C := C) _ _ _ @ _). etrans. { apply maponpaths_2. exact (!(pr1 Hg')). } apply (id_left (C := C)). } exact (!(pr1 Hf')). - cbn. rewrite (pr2 Hf'), (pr2 Hg'). etrans. { apply maponpaths_2. apply maponpaths. refine (!(TwoCategories.lwhisker_vcomp (C := C) _ _ _) @ _). etrans. { apply maponpaths. apply idto2mor_lwhisker. } apply maponpaths_2. refine (!(TwoCategories.lwhisker_vcomp (C := C) _ _ _) @ _). etrans. { apply maponpaths_2. apply idto2mor_lwhisker. } apply maponpaths. etrans. { apply maponpaths. apply idto2mor_rwhisker. } apply idto2mor_lwhisker. } etrans. { etrans. { apply maponpaths_2. etrans. { apply maponpaths. etrans. { apply maponpaths_2. apply idto2mor_comp. } apply idto2mor_comp. } apply idto2mor_comp. } apply idto2mor_comp. } apply maponpaths. apply (homset_property C). Qed.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Core.Setcategories. Require Import UniMath.CategoryTheory.Core.TwoCategories. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Isos. Require Import UniMath.CategoryTheory.DisplayedCats.Total. Require Import UniMath.CategoryTheory.DisplayedCats.Univalence. Require Import UniMath.CategoryTheory.DisplayedCats.Examples.Sigma. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Strictness. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.SquaresTwoCat. Require Import UniMath.Bicategories.Core.Bicat. Require Import UniMath.Bicategories.Core.Univalence. Require Import UniMath.Bicategories.Core.Strictness. Require Import UniMath.Bicategories.Core.AdjointUnique. Require Import UniMath.Bicategories.Morphisms.Adjunctions. Require Import UniMath.Bicategories.Morphisms.Properties.Composition. Require Import UniMath.Bicategories.DoubleCategories.Basics.StrictDoubleCatBasics. Require Import UniMath.Bicategories.DoubleCategories.Basics.DoubleCategoryBasics. Require Import UniMath.Bicategories.DoubleCategories.Core.DoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.UnivalentDoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.PseudoDoubleSetCats. Require Import UniMath.Bicategories.DoubleCategories.Core.CompanionsAndConjoints. Require Import UniMath.Bicategories.DoubleCategories.Examples.SquareDoubleCatTwo. Require Import UniMath.Bicategories.DoubleCategories.Examples.DoubleCatOnDispCat. Import TwoCategories.Notations.