Proposition underlying_vert_two_cat_assoc (p₁ : (identity_v x ·v v₁) ·v identity_v y = v₁) (p₂ : (identity_v x ·v v₂) ·v identity_v y = v₂) (p₃ : (identity_v x ·v v₃) ·v identity_v y = v₃) (p₄ : (identity_v x ·v v₄) ·v identity_v y = v₄) : s₁ ⋆h transportf_square p₂ p₄ (linvunitor_h (identity_h x) ⋆v s₂ ⋆h s₃ ⋆v lunitor_h (identity_h y)) = (transportf_square p₁ p₃ (linvunitor_h (identity_h x) ⋆v s₁ ⋆h s₂ ⋆v lunitor_h (identity_h y))) ⋆h s₃. Proof. refine (!_). etrans. { use assoc_step_5. refine (id_v_left _ @ _). apply id_v_right. } etrans. { apply maponpaths. refine (!_). apply assoc_step_4. } etrans. { apply maponpaths. use assoc_step_3. - do 2 refine (id_v_left _ @ _). rewrite !id_v_right. exact (!(id_v_left _)). - do 2 refine (id_v_left _ @ _). rewrite !id_v_right. exact (!(id_v_left _)). } rewrite transportf_f_square. etrans. { apply maponpaths. use assoc_step_2. - rewrite !id_v_right. refine (!_). apply id_v_left. - rewrite !id_v_right. refine (!_). apply id_v_left. } rewrite transportf_f_square. rewrite <- !comp_h_square_comp. rewrite square_id_left_v. rewrite square_id_right_v. unfold transportb_square. rewrite transportf_f_square. rewrite transportf_hcomp_l. rewrite !transportf_hcomp_r. rewrite transportf_square_id. rewrite transportf_f_square. use transportf_square_eq. apply maponpaths_2. use transportf_square_eq. apply idpath. Qed.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Core.Setcategories. Require Import UniMath.CategoryTheory.Core.TwoCategories. Require Import UniMath.CategoryTheory.Monads.Monads. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Strictness. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.Comma. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Examples.BicatOfUnivCats. Require Import UniMath.Bicategories.DoubleCategories.Basics.DoubleCategoryBasics. Require Import UniMath.Bicategories.DoubleCategories.Core.DoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.UnivalentDoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.PseudoDoubleSetCats. Require Import UniMath.Bicategories.DoubleCategories.DerivedLaws. Import TransportSquare.