Proposition runitor_h_triangle {C : double_cat} {x y z : C} (f : x -->h y) (g : y -->h z) : rassociator_h f g (identity_h z) ⋆v (id_v_square f ⋆h runitor_h g) = transportb_square (id_v_left _) (id_v_left _) (runitor_h _). Proof. use hcomp_r_inj. - exact (!(id_v_left _)). - refine (!_). unfold transportb_square. rewrite transportf_f_square. rewrite transportf_hcomp_l. rewrite transportf_square_id. rewrite <- double_triangle_alt'. rewrite transportf_f_square. refine (!(square_id_right_v' _) @ _ @ square_id_right_v' _). apply maponpaths. rewrite <- !rassociator_lassociator_h'. rewrite !transportf_square_postwhisker. apply maponpaths. refine (square_assoc_v _ _ _ @ _ @ !(square_assoc_v _ _ _)). apply maponpaths. apply maponpaths_2. refine (!_). etrans. { rewrite transportf_hcomp_l. rewrite transportf_square_prewhisker. apply maponpaths. etrans. { apply maponpaths_2. use hcomp_split_globular_l ; apply idpath. } rewrite transportf_square_prewhisker. rewrite transportf_f_square. apply maponpaths. etrans. { refine (!_). apply square_assoc_v'. } rewrite <- rassociator_square'. apply idpath. } unfold transportb_square. rewrite transportf_square_prewhisker. rewrite transportf_square_postwhisker. rewrite !transportf_f_square. refine (!_). etrans. { apply maponpaths. rewrite <- comp_h_square_id. etrans. { refine (!_). apply square_assoc_v'. } rewrite <- rassociator_square'. apply idpath. } unfold transportb_square. rewrite transportf_square_postwhisker. rewrite !transportf_f_square. rewrite <- double_triangle'. etrans. { apply maponpaths. apply square_assoc_v. } unfold transportb_square. rewrite !transportf_f_square. rewrite double_inverse_pentagon. rewrite transportf_square_prewhisker. rewrite transportf_f_square. rewrite !transportf_square_id. rewrite <- square_assoc_v'. rewrite transportf_f_square. rewrite <- square_assoc_v'. rewrite transportf_f_square. etrans. { do 3 apply maponpaths. rewrite (hcomp_split_globular_l_id (idpath _) (idpath _)). rewrite transportf_square_postwhisker. rewrite transportf_f_square. etrans. { do 3 apply maponpaths. apply square_assoc_v. } unfold transportb_square. rewrite transportf_f_square. rewrite rassociator_lassociator_h. unfold transportb_square. rewrite transportf_square_prewhisker. rewrite transportf_f_square. rewrite square_id_left_v. unfold transportb_square. rewrite transportf_f_square. rewrite transportf_hcomp_r. rewrite transportf_square_id. rewrite transportf_f_square. apply idpath. } rewrite !transportf_square_postwhisker. rewrite transportf_f_square. use transportf_square_eq. apply idpath. Qed.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.DoubleCategories.Core.DoubleCats. Require Import UniMath.Bicategories.DoubleCategories.DerivedLaws.TransportLaws. Require Import UniMath.Bicategories.DoubleCategories.DerivedLaws.Variations. Import TransportSquare.