Proposition is_double_coalg_sqr_lassociator {W X Y Z : double_coalg F} (h₁ : double_coalg_hor W X) (h₂ : double_coalg_hor X Y) (h₃ : double_coalg_hor Y Z) : is_double_coalg_sqr (double_coalg_comp_hor_struct h₁ (double_coalg_comp_hor h₂ h₃)) (double_coalg_comp_hor_struct (double_coalg_comp_hor h₁ h₂) h₃) (identity _) (identity _) (lassociator_h h₁ h₂ h₃). Proof. cbn. rewrite transportf_square_prewhisker. rewrite transportf_square_postwhisker. rewrite transportf_f_square. rewrite transportf_hcomp_r. rewrite !transportf_square_prewhisker. rewrite transportf_f_square. etrans. { apply maponpaths. do 2 apply maponpaths_2. use hcomp_vcomp_r_id_r. } rewrite !transportf_square_prewhisker. rewrite transportf_f_square. etrans. { apply maponpaths. do 3 apply maponpaths_2. rewrite transportf_hcomp_l. rewrite transportf_f_square. rewrite !transportf_square_id. apply idpath. } rewrite <- square_assoc_v'. 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 (lax_double_functor_lassociator_h' F). } unfold transportb_square. rewrite transportf_square_postwhisker. rewrite transportf_f_square. rewrite square_assoc_v. unfold transportb_square. rewrite transportf_f_square. rewrite square_assoc_v. unfold transportb_square. rewrite transportf_square_prewhisker. rewrite transportf_f_square. etrans. { apply maponpaths. do 2 apply maponpaths_2. apply lassociator_square. } unfold transportb_square. rewrite !transportf_square_prewhisker. rewrite transportf_f_square. refine (!_). etrans. { apply maponpaths. apply maponpaths. apply maponpaths_2. use hcomp_vcomp_l_id_r. } 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. apply square_assoc_v. } unfold transportb_square. rewrite transportf_square_prewhisker. rewrite transportf_f_square. use transportf_square_eq. apply idpath. Qed.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.FunctorCoalgebras. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Isos. Require Import UniMath.CategoryTheory.DisplayedCats.Total. Require Import UniMath.CategoryTheory.DisplayedCats.Univalence. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.DisplayedFunctor. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Total. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.DispCatOnTwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Examples.TwoSidedDispCatOnDispCat. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.DoubleCategories.Basics.DoubleCategoryBasics. Require Import UniMath.Bicategories.DoubleCategories.Core.DoubleFunctor. Require Import UniMath.Bicategories.DoubleCategories.Core.DoubleCats. Require Import UniMath.Bicategories.DoubleCategories.Core.UnivalentDoubleCats. Require Import UniMath.Bicategories.DoubleCategories.DerivedLaws. Import TransportSquare.