Proposition transpose_associator_laws : double_associator_laws transpose_associator_data. Proof. unfold double_associator_laws ; cbn -[idtoiso_twosided_disp]. intros w₁ w₂ x₁ x₂ y₁ y₂ z₁ z₂ v₁ v₂ v₃ v₄ v₅ v₆ h₁ h₂ h₃ h₄ s₁ s₂ s₃. rewrite square_assoc_v. rewrite transportb_disp_mor2_transpose. rewrite pathscomp_inv. rewrite pathsinv0inv0. rewrite <- (path_to_globular_iso_square_comp (C := C)). etrans. { do 2 apply maponpaths. refine (!_). apply path_to_globular_iso_square_comp. } rewrite <- !(path_to_globular_iso_square_inv (C := C)). etrans. { do 4 apply maponpaths. refine (!_). apply path_to_globular_iso_square_inv. } rewrite !globular_iso_to_path_to_iso. rewrite !transportf_square_prewhisker. rewrite transportf_square_postwhisker. rewrite !transportf_f_square. rewrite <- square_assoc_v'. rewrite !transportf_f_square. etrans. { do 2 apply maponpaths. do 2 apply maponpaths_2. apply idtoiso_twosided_disp_transpose. } rewrite transportf_hcomp_l. rewrite transportf_square_prewhisker. rewrite transportf_square_postwhisker. rewrite transportf_f_square. etrans. { do 2 apply maponpaths. apply square_assoc_v. } unfold transportb_square. rewrite transportf_square_postwhisker. rewrite transportf_f_square. etrans. { do 2 apply maponpaths. apply maponpaths_2. apply (lunitor_square (C := C)). } unfold transportb_square. rewrite transportf_square_postwhisker. rewrite transportf_square_prewhisker. rewrite transportf_square_postwhisker. rewrite transportf_square_prewhisker. rewrite transportf_square_postwhisker. rewrite !transportf_f_square. etrans. { apply maponpaths. refine (!_). apply square_assoc_v'. } rewrite transportf_f_square. etrans. { do 2 apply maponpaths. apply square_assoc_v. } unfold transportb_square. rewrite transportf_square_postwhisker. rewrite transportf_f_square. etrans. { do 2 apply maponpaths. apply maponpaths_2. apply square_assoc_v. } unfold transportb_square. rewrite transportf_square_prewhisker. rewrite transportf_square_postwhisker. rewrite transportf_f_square. etrans. { do 2 apply maponpaths. do 2 apply maponpaths_2. apply linvunitor_lunitor_h. } unfold transportb_square. rewrite !transportf_square_prewhisker. rewrite transportf_square_postwhisker. rewrite transportf_f_square. rewrite square_id_left_v. unfold transportb_square. rewrite transportf_square_prewhisker. rewrite transportf_square_postwhisker. rewrite transportf_f_square. rewrite square_assoc_v. unfold transportb_square. rewrite transportf_f_square. etrans. { apply maponpaths. apply maponpaths_2. refine (!_). apply (runitor_square' (C := C)). } rewrite transportf_square_prewhisker. rewrite transportf_f_square. rewrite <- square_assoc_v'. rewrite transportf_f_square. etrans. { do 2 apply maponpaths. apply runitor_rinvunitor_h. } unfold transportb_square. rewrite transportf_square_postwhisker. rewrite transportf_f_square. rewrite square_id_right_v. unfold transportb_square. rewrite transportf_f_square. refine (!_). etrans. { apply maponpaths. apply idtoiso_twosided_disp_transpose. } rewrite transportf_hcomp_l. rewrite transportf_f_square. use transportf_square_eq. apply maponpaths. rewrite !id_h_square_comp. rewrite square_assoc_v. unfold transportb_square. rewrite transportf_f_square. apply transportf_square_id. Qed.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Core.Setcategories. 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.DerivedLaws. Import TransportSquare.