Proposition comp_hor_id_laws {C₁ C₂ C₃ : category} {D₁ : twosided_disp_cat C₁ C₁} {D₂ : twosided_disp_cat C₂ C₂} {D₃ : twosided_disp_cat C₃ C₃} {I₁ : hor_id D₁} {I₂ : hor_id D₂} {I₃ : hor_id D₃} {F : C₁ ⟶ C₂} {FF : twosided_disp_functor F F D₁ D₂} {G : C₂ ⟶ C₃} {GG : twosided_disp_functor G G D₂ D₃} (HFF : double_functor_hor_id FF I₁ I₂) (HGG : double_functor_hor_id GG I₂ I₃) : double_functor_hor_id_laws (comp_hor_id_data HFF HGG). Proof. intros x y f ; cbn. rewrite two_disp_post_whisker_f. rewrite assoc_two_disp. unfold transportb_disp_mor2. rewrite transport_f_f_disp_mor2. rewrite (functor_double_id_eq HGG). rewrite two_disp_pre_whisker_b. unfold transportb_disp_mor2. rewrite transport_f_f_disp_mor2. rewrite assoc_two_disp_alt. unfold transportb_disp_mor2. rewrite transport_f_f_disp_mor2. rewrite (twosided_disp_functor_comp_alt _ _ _ _ GG). rewrite two_disp_post_whisker_f. rewrite transport_f_f_disp_mor2. rewrite (functor_double_id_eq HFF). rewrite transportb_twosided_disp_functor. rewrite two_disp_post_whisker_b. unfold transportb_disp_mor2. rewrite transport_f_f_disp_mor2. rewrite (twosided_disp_functor_comp _ _ _ _ GG). rewrite two_disp_post_whisker_b. unfold transportb_disp_mor2. rewrite transport_f_f_disp_mor2. refine (!_). rewrite two_disp_pre_whisker_f. rewrite transport_f_f_disp_mor2. rewrite assoc_two_disp_alt. unfold transportb_disp_mor2. rewrite transport_f_f_disp_mor2. use transportf_disp_mor2_eq. apply idpath. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.DisplayedFunctor. Require Import UniMath.Bicategories.DoubleCategories.Basics.DoubleCategoryBasics.