Definition pr1_is_disp_invertible_2cell {a b : C} {f : a --> b} {g : a --> b} (x : invertible_2cell f g) {aa : disp_dirprod_bicat a} {bb : disp_dirprod_bicat b} {ff : aa -->[ f ] bb} {gg : aa -->[ g ] bb} (xx : ff ==>[ x ] gg) : is_disp_invertible_2cell x xx → is_disp_invertible_2cell x (pr1 xx). Proof. intros H. use tpair. - exact (pr1 (pr1 H)). - split. + refine (maponpaths pr1 (@disp_vcomp_rinv C disp_dirprod_bicat a b f g aa bb x ff gg (_ ,, H)) @ _). cbn. refine (maponpaths pr1 ((transportb_dirprod (f ==> f) (λ α, _ ==>[α] _) (λ α, _ ==>[α] _) (_ ,, (_ ,, _)) (_ ,, (_ ,, _)) (vcomp_rinv x) ))). * exact (transportb (λ z, _ ==>[z] _) (vcomp_rinv _) (disp_id2 _)). * exact (transportb (λ z, _ ==>[z] _) (vcomp_rinv _) (disp_id2 _)). + refine (maponpaths pr1 (@disp_vcomp_linv C disp_dirprod_bicat a b f g aa bb x ff gg (_ ,, H)) @ _). cbn. refine (maponpaths pr1 ((transportb_dirprod (g ==> g) (λ α, _ ==>[α] _) (λ α, _ ==>[α] _) (_ ,, (_ ,, _)) (_ ,, (_ ,, _)) (vcomp_linv x) ))). * exact (transportb (λ z, _ ==>[z] _) (vcomp_linv _) (disp_id2 _)). * exact (transportb (λ z, _ ==>[z] _) (vcomp_linv _) (disp_id2 _)). Defined.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Constructions. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Examples.Initial. Require Import UniMath.Bicategories.Core.Examples.Final. Require Import UniMath.Bicategories.DisplayedBicats.DispBicat. Import DispBicat.Notations. Require Import UniMath.Bicategories.Core.Univalence. Require Import UniMath.Bicategories.DisplayedBicats.DispInvertibles. Require Import UniMath.Bicategories.DisplayedBicats.DispAdjunctions. Require Import UniMath.Bicategories.DisplayedBicats.DispUnivalence.