Definition comp_pseudomonic {B : bicat} {a b c : B} {f : a --> b} {g : b --> c} (Hf : pseudomonic_1cell f) (Hg : pseudomonic_1cell g) : pseudomonic_1cell (f · g). Proof. use make_pseudomonic. - apply comp_faithful. + apply pseudomonic_1cell_faithful. exact Hf. + apply pseudomonic_1cell_faithful. exact Hg. - intros z g₁ g₂ αf Hαf. simple refine (_ ,, _). + simple refine (pseudomonic_1cell_inv_map Hf _ _). * apply (pseudomonic_1cell_inv_map Hg (rassociator _ _ _ • αf • lassociator _ _ _)). is_iso. * apply is_invertible_2cell_pseudomonic_1cell_inv_map. + split. * apply is_invertible_2cell_pseudomonic_1cell_inv_map. * abstract (use (vcomp_lcancel (rassociator _ _ _)) ; [ is_iso | ] ; rewrite <- rwhisker_rwhisker_alt ; rewrite !pseudomonic_1cell_inv_map_eq ; rewrite !vassocl ; rewrite lassociator_rassociator ; rewrite id2_right ; 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.