Proposition hcomp_split_globular {C : double_cat} {x y z : C} {v₁ : x -->v x} {v₂ : y -->v y} {v₃ : z -->v z} (p₁ : identity_v x = v₁) (p₂ : identity_v y = v₂) (p₃ : identity_v z = v₃) {h₁ : x -->h y} {k₁ : y -->h z} {h₂ : x -->h y} {k₂ : y -->h z} (s₁ : square v₁ v₂ h₁ h₂) (s₂ : square v₂ v₃ k₁ k₂) : s₁ ⋆h s₂ = transportf_square (id_v_left _ @ p₁) (id_v_left _ @ p₃) (transportf_square (!p₁) (!p₂) s₁ ⋆h id_v_square k₁ ⋆v id_v_square h₂ ⋆h transportf_square (!p₂) (!p₃) s₂). Proof. induction p₁, p₂, p₃ ; cbn. rewrite <- comp_h_square_comp. rewrite square_id_left_v. rewrite square_id_right_v. unfold transportb_square. rewrite transportf_hcomp_l. rewrite !transportf_f_square. rewrite transportf_hcomp_r. rewrite transportf_f_square. rewrite !transportf_square_id. 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.