Definition comp_fully_faithful {B : bicat} {a b c : B} {f : a --> b} {g : b --> c} (Hf : fully_faithful_1cell f) (Hg : fully_faithful_1cell g) : fully_faithful_1cell (f · g). Proof. use make_fully_faithful. - exact (comp_faithful (fully_faithful_1cell_faithful Hf) (fully_faithful_1cell_faithful Hg)). - intros z g₁ g₂ αf. simple refine (_ ,, _). + apply (fully_faithful_1cell_inv_map Hf). apply (fully_faithful_1cell_inv_map Hg). exact (rassociator _ _ _ • αf • lassociator _ _ _). + abstract (cbn ; use (vcomp_rcancel (lassociator _ _ _)) ; [ is_iso | ] ; rewrite !vassocl ; rewrite <- rwhisker_rwhisker ; rewrite !fully_faithful_1cell_inv_map_eq ; rewrite !vassocr ; rewrite lassociator_rassociator ; rewrite id2_left ; apply idpath). Defined.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Invertible_2cells. Require Import UniMath.Bicategories.Core.Unitors. Require Import UniMath.Bicategories.Core.BicategoryLaws. Require Import UniMath.Bicategories.Core.EquivToAdjequiv. Require Import UniMath.Bicategories.Core.Univalence. Require Import UniMath.Bicategories.Core.AdjointUnique. Require Import UniMath.Bicategories.Morphisms.Adjunctions. Require Import UniMath.Bicategories.Morphisms.FullyFaithful. Require Import UniMath.Bicategories.Morphisms.DiscreteMorphisms. Require Import UniMath.Bicategories.Morphisms.InternalStreetFibration. Require Import UniMath.Bicategories.Morphisms.InternalStreetOpFibration. Section FromCompCartesian. End FromCompCartesian.