proposition: Proposition disp_cat_axioms_of_strict_twosided_disp_cat : disp_cat_axioms cat_of_setcategory disp_cat_data_of_strict_twosided_disp_cat.
proof: Proof. repeat split. - cbn ; intros C₁ C₂ F D₁ D₂ FF. use eq_twosided_disp_functor. + intros x y xy ; cbn. exact (!(transportb_disp_cat_of_strict_twosided_disp_cat_ob _ _ _ _ _ _)). + intros x₁ x₂ f y₁ y₂ g xy₁ xy₂ fg ; cbn -[idtoiso_twosided_disp]. refine (!_). etrans. { do 2 apply maponpaths. apply transportb_disp_cat_of_strict_twosided_disp_cat_mor. } cbn -[idtoiso_twosided_disp]. rewrite (two_disp_post_whisker_f (D := D₂)). rewrite transport_f_f_disp_mor2. etrans. { apply maponpaths. apply (assoc_two_disp (D := D₂)). } unfold transportb_disp_mor2. rewrite transport_f_f_disp_mor2. etrans. { apply maponpaths. apply maponpaths_2. apply (assoc_two_disp (D := D₂)). } unfold transportb_disp_mor2. rewrite two_disp_pre_whisker_f. rewrite transport_f_f_disp_mor2. etrans. { apply maponpaths. do 2 apply maponpaths_2. apply (idtoiso_twosided_disp_concat (D := D₂)). } unfold transportb_disp_mor2. rewrite !two_disp_pre_whisker_f. rewrite transport_f_f_disp_mor2. rewrite idtoiso_twosided_disp_identity. etrans. { apply maponpaths. apply maponpaths_2. apply (id_two_disp_left (D := D₂)). } unfold transportb_disp_mor2. rewrite two_disp_pre_whisker_f. rewrite transport_f_f_disp_mor2. apply transportf_disp_mor2_idpath. - cbn ; intros C₁ C₂ F D₁ D₂ FF. use eq_twosided_disp_functor. + intros x y xy ; cbn. exact (!(transportb_disp_cat_of_strict_twosided_disp_cat_ob F _ _ (@id_right cat_of_setcategory _ _ F) FF xy)). + intros x₁ x₂ f y₁ y₂ g xy₁ xy₂ fg ; cbn -[idtoiso_twosided_disp]. refine (!_). etrans. { do 2 apply maponpaths. apply (transportb_disp_cat_of_strict_twosided_disp_cat_mor _ _ _ (id_right (C := cat_of_setcategory) F)). } cbn -[idtoiso_twosided_disp]. rewrite (two_disp_post_whisker_f (D := D₂)). rewrite transport_f_f_disp_mor2. etrans. { apply maponpaths. apply (assoc_two_disp (D := D₂)). } unfold transportb_disp_mor2. rewrite transport_f_f_disp_mor2. etrans. { apply maponpaths. apply maponpaths_2. apply (assoc_two_disp (D := D₂)). } unfold transportb_disp_mor2. rewrite two_disp_pre_whisker_f. rewrite transport_f_f_disp_mor2. etrans. { apply maponpaths. do 2 apply maponpaths_2. apply (idtoiso_twosided_disp_concat (D := D₂)). } unfold transportb_disp_mor2. rewrite !two_disp_pre_whisker_f. rewrite transport_f_f_disp_mor2. rewrite idtoiso_twosided_disp_identity. etrans. { apply maponpaths. apply maponpaths_2. apply (id_two_disp_left (D := D₂)). } unfold transportb_disp_mor2. rewrite two_disp_pre_whisker_f. rewrite transport_f_f_disp_mor2. apply transportf_disp_mor2_idpath. - cbn ; intros C₁ C₂ C₃ C₄ F G H D₁ D₂ D₃ D₄ FF GG HH. use eq_twosided_disp_functor. + intros x y xy ; cbn. exact (!(transportb_disp_cat_of_strict_twosided_disp_cat_ob _ _ _ (@assoc cat_of_setcategory _ _ _ _ F G H) (comp_twosided_disp_functor (comp_twosided_disp_functor FF GG) HH) xy)). + intros x₁ x₂ f y₁ y₂ g xy₁ xy₂ fg. refine (!_). etrans. { do 2 apply maponpaths. apply (transportb_disp_cat_of_strict_twosided_disp_cat_mor _ _ _ (assoc (C := cat_of_setcategory) F G H)). } cbn -[idtoiso_twosided_disp]. rewrite (two_disp_post_whisker_f (D := D₄)). rewrite transport_f_f_disp_mor2. etrans. { apply maponpaths. apply (assoc_two_disp (D := D₄)). } unfold transportb_disp_mor2. rewrite transport_f_f_disp_mor2. etrans. { apply maponpaths. apply maponpaths_2. apply (assoc_two_disp (D := D₄)). } unfold transportb_disp_mor2. rewrite two_disp_pre_whisker_f. rewrite transport_f_f_disp_mor2. etrans. { apply maponpaths. do 2 apply maponpaths_2. apply (idtoiso_twosided_disp_concat (D := D₄)). } unfold transportb_disp_mor2. rewrite !two_disp_pre_whisker_f. rewrite transport_f_f_disp_mor2. rewrite idtoiso_twosided_disp_identity. etrans. { apply maponpaths. apply maponpaths_2. apply (id_two_disp_left (D := D₄)). } unfold transportb_disp_mor2. rewrite two_disp_pre_whisker_f. rewrite transport_f_f_disp_mor2. apply transportf_disp_mor2_idpath. - intros. apply isaset_twosided_disp_functor. Qed.
imports: UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Prelude UniMath.CategoryTheory.Core.Setcategories UniMath.CategoryTheory.Categories.CategoryOfSetCategories UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.DisplayedCats.Core UniMath.CategoryTheory.DisplayedCats.Functors UniMath.CategoryTheory.DisplayedCats.NaturalTransformations UniMath.CategoryTheory.DisplayedCats.Isos UniMath.CategoryTheory.DisplayedCats.Total UniMath.CategoryTheory.DisplayedCats.Univalence UniMath.CategoryTheory.DisplayedCats.Constructions UniMath.CategoryTheory.DisplayedCats.DisplayedCatEq UniMath.CategoryTheory.DisplayedCats.Examples.DispFunctorPair UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat UniMath.CategoryTheory.TwoSidedDisplayedCats.DisplayedFunctor UniMath.CategoryTheory.TwoSidedDisplayedCats.DisplayedNatTrans UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence UniMath.CategoryTheory.TwoSidedDisplayedCats.Strictness UniMath.CategoryTheory.TwoSidedDisplayedCats.TransportLaws