proposition: Lemma disp_lhs_left_invert_cell {a b : C} {f g h : a --> b} {x : f ==> g} {y : g ==> h} {z : f ==> h} {inv_x : is_invertible_2cell x} {aa : D a} {bb : D b} {ff : aa -->[f] bb} {gg : aa -->[g] bb} {hh : aa -->[h] bb} (xx : ff ==>[x] gg) (yy : gg ==>[y] hh) (zz : ff ==>[z] hh) (inv_xx : is_disp_invertible_2cell inv_x xx) (q : x • y = z) (p := rhs_left_inv_cell _ _ _ inv_x q : y = inv_x^-1 • z) (pp : yy = transportb (λ x, _ ==>[x] _) p (disp_inv_cell ((xx,,inv_xx):disp_invertible_2cell (x,,inv_x) ff gg) •• zz)) : xx •• yy = transportb (λ x, _ ==>[x] _) q zz.
proof: Proof. etrans. { apply maponpaths. apply pp. } etrans. { apply disp_mor_transportf_prewhisker. } etrans. { apply maponpaths. apply disp_vassocr. } etrans. { apply (transport_f_f (λ x, _ ==>[x] _)). } etrans. { apply maponpaths. apply maponpaths_2. apply (disp_vcomp_rinv ((xx,,inv_xx):disp_invertible_2cell (x,,inv_x) _ _)). } etrans. { apply maponpaths. apply disp_mor_transportf_postwhisker. } etrans. { unfold transportb. apply (transport_f_f (λ x, _ ==>[x] _)). } etrans. { apply maponpaths. apply disp_id2_left. } etrans. { unfold transportb. apply (transport_f_f (λ x, _ ==>[x] _)). } unfold transportb. apply maponpaths_2. apply cellset_property. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.DisplayedCats.Core UniMath.CategoryTheory.DisplayedCats.Total UniMath.Bicategories.Core.Bicat UniMath.Bicategories.Core.Invertible_2cells UniMath.Bicategories.Core.BicategoryLaws UniMath.Bicategories.Core.Unitors UniMath.Bicategories.Morphisms.Adjunctions UniMath.Bicategories.Core.Univalence