Definition fully_faithful_is_pseudomonic {B : bicat} {a b : B} {f : a --> b} (Hf : fully_faithful_1cell f) : pseudomonic_1cell f. Proof. use make_pseudomonic. - exact (fully_faithful_1cell_faithful Hf). - intros z g₁ g₂ αf ?. refine (fully_faithful_1cell_inv_map Hf αf ,, _ ,, _). + use make_is_invertible_2cell. * exact (fully_faithful_1cell_inv_map Hf (Hαf^-1)). * abstract (use (fully_faithful_1cell_faithful Hf) ; rewrite <- rwhisker_vcomp ; rewrite !fully_faithful_1cell_inv_map_eq ; rewrite id2_rwhisker ; apply vcomp_rinv). * abstract (use (fully_faithful_1cell_faithful Hf) ; rewrite <- rwhisker_vcomp ; rewrite !fully_faithful_1cell_inv_map_eq ; rewrite id2_rwhisker ; apply vcomp_linv). + exact (fully_faithful_1cell_inv_map_eq Hf αf). 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.CategoryTheory.Core.Isos. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Invertible_2cells.