Proposition hcomp_split_globular_r_id {C : double_cat} {x y z : C} {v₁ v₂ : x -->v x} (q₁ : identity_v x = v₁) (q₂ : identity_v x = v₂) {h₁ h₂ h₃ : x -->h y} {k : y -->h z} (s₁ : square v₁ (identity_v y) h₁ h₂) (s₂ : square v₂ (identity_v y) h₂ h₃) : s₁ ⋆h id_v_square k ⋆v s₂ ⋆h id_v_square k = transportf_square (idpath _) (!(id_v_left _)) (transportf_square (idpath _) (id_v_left _) (s₁ ⋆v s₂) ⋆h id_v_square k). Proof. induction q₁, q₂ ; cbn -[transportf_square]. rewrite <- comp_h_square_comp. rewrite square_id_left_v. unfold transportb_square. rewrite transportf_hcomp_l. rewrite transportf_f_square. rewrite transportf_hcomp_r. use transportf_square_eq. rewrite transportf_hcomp_r. refine (maponpaths (λ z, z ⋆h _) _). 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.