Proposition hcomp_vcomp_r_id_r {C : double_cat} {x₁ x₂ y₁ y₂ z₁ z₂ z₃ : C} {u : x₁ -->v x₂} {v : y₁ -->v y₂} {w₁ : z₁ -->v z₂} {w₂ : z₂ -->v z₃} {h₁ : x₁ -->h y₁} {k₁ : y₁ -->h z₁} {h₂ : x₂ -->h y₂} {k₂ : y₂ -->h z₃} {l : y₂ -->h z₂} (s₁ : square u (v ·v identity_v _) h₁ h₂) (s₂ : square v w₁ k₁ l) (s₃ : square (identity_v _) w₂ l k₂) : s₁ ⋆h (s₂ ⋆v s₃) = transportf_square (id_right _) (idpath _) ((s₁ ⋆h transportf_square (!(id_right _)) (idpath _) s₂) ⋆v (id_v_square _ ⋆h s₃)). Proof. etrans. { apply maponpaths_2. refine (!_). apply square_id_right_v'. } rewrite transportf_hcomp_l. apply maponpaths. rewrite <- comp_h_square_comp. apply maponpaths. rewrite transportf_square_prewhisker. apply 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.Core.DoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.UnivalentDoubleCats.