Proposition hcomp_vcomp_l_id_r {C : double_cat} {x₁ x₂ x₃ y₁ y₂ z₁ z₂ : C} {u : x₁ -->v x₂} {u' : x₂ -->v x₃} {u'' : x₁ -->v x₃} (p : u · u' = u'') {v : y₁ -->v y₂} (q' : v · identity_v y₂ = v) {w : z₁ -->v z₂} {h₁ : x₁ -->h y₁} {h₂ : x₂ -->h y₂} {h₃ : x₃ -->h y₂} {k₁ : y₁ -->h z₁} {k₂ : y₂ -->h z₂} (s₁ : square u v h₁ h₂) (s₂ : square u' (identity_v _) h₂ h₃) (s₃ : square v w k₁ k₂) : (transportf_square p q' (s₁ ⋆v s₂)) ⋆h s₃ = transportf_square p (id_right _) ((s₁ ⋆h s₃) ⋆v (s₂ ⋆h id_v_square _)). Proof. induction p. assert (id_right _ = q') as r. { apply homset_property. } induction r. rewrite <- comp_h_square_comp. rewrite square_id_right_v. unfold transportb_square. rewrite transportf_hcomp_r. rewrite transportf_f_square. rewrite transportf_square_id. apply maponpaths_2. 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.