Proposition to_is_z_iso_disp_strict_twosided_disp_cat_laws : is_disp_inverse (D := disp_cat_of_strict_twosided_disp_cat) (identity_z_iso _) (disp_functor_to_two_sided_disp_functor (disp_functor_over_pair F)) G. Proof. split. - use eq_twosided_disp_functor. + abstract (intros x y xy ; cbn ; refine (homotweqinvweq (φ₀ x y) _ @ _) ; refine (!_) ; apply (transportb_disp_cat_of_strict_twosided_disp_cat_ob (functor_identity _))). + intros x₁ x₂ f y₁ y₂ g xy₁ xy₂ fg. cbn -[idtoiso_twosided_disp]. etrans. { apply maponpaths_2. apply (homotweqinvweq (φ₁ (invmap (φ₀ x₁ y₁) xy₁) (invmap (φ₀ x₂ y₂) xy₂) f g)). } rewrite (two_disp_pre_whisker_f (D := D₂)). rewrite !(assoc_two_disp_alt (D := D₂)). rewrite !transport_f_f_disp_mor2. etrans. { do 3 apply maponpaths. apply (idtoiso_twosided_disp_concat (D := D₂)). } unfold transportb_disp_mor2. rewrite !two_disp_post_whisker_f. rewrite transport_f_f_disp_mor2. refine (!_). etrans. { do 2 apply maponpaths. apply (transportb_disp_cat_of_strict_twosided_disp_cat_mor (functor_identity _)). } cbn -[idtoiso_twosided_disp]. rewrite (two_disp_post_whisker_f (D := D₂)). rewrite transport_f_f_disp_mor2. rewrite !(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. use transportf_disp_mor2_eq. use idtoiso_twosided_disp_triple_concat. - use eq_twosided_disp_functor. + intros x y xy ; cbn. refine (homotinvweqweq (φ₀ x y) _ @ _). refine (!_). apply (transportb_disp_cat_of_strict_twosided_disp_cat_ob (functor_identity _)). + intros x₁ x₂ f y₁ y₂ g xy₁ xy₂ fg. use (invmaponpathsweq (φ₁ _ _ _ _)). cbn -[idtoiso_twosided_disp]. rewrite !disp_functor_transportf_disp_mor2. etrans. { apply disp_functor_comp_two_disp. } etrans. { apply maponpaths_2. apply (homotweqinvweq (φ₁ _ _ _ _)). } refine (!_). etrans. { apply maponpaths. apply disp_functor_comp_two_disp. } etrans. { do 3 apply maponpaths. apply (transportb_disp_cat_of_strict_twosided_disp_cat_mor _ _ _ (id_left (C := cat_of_setcategory) (functor_identity C))). } cbn -[idtoiso_twosided_disp]. rewrite disp_functor_transportf_disp_mor2. rewrite (two_disp_pre_whisker_f (D := D₂)). rewrite (two_disp_post_whisker_f (D := D₂)). rewrite transport_f_f_disp_mor2. etrans. { do 2 apply maponpaths. etrans. { apply disp_functor_comp_two_disp. } apply maponpaths_2. apply disp_functor_comp_two_disp. } etrans. { apply maponpaths. etrans. { apply maponpaths_2. apply disp_functor_idtoiso_twosided_disp. } apply maponpaths. etrans. { apply maponpaths. apply disp_functor_idtoiso_twosided_disp. } do 2 apply maponpaths_2. apply disp_functor_idtoiso_twosided_disp. } refine (!_). etrans. { do 2 apply maponpaths. apply disp_functor_idtoiso_twosided_disp. } rewrite !(assoc_two_disp_alt (D := D₂)). rewrite !transport_f_f_disp_mor2. etrans. { do 3 apply maponpaths. apply (idtoiso_twosided_disp_concat (D := D₂)). } unfold transportb_disp_mor2. rewrite !two_disp_post_whisker_f. rewrite transport_f_f_disp_mor2. refine (!_). rewrite !(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. use transportf_disp_mor2_eq. use idtoiso_twosided_disp_triple_concat. Qed.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Core.Setcategories. Require Import UniMath.CategoryTheory.Categories.CategoryOfSetCategories. Require Import UniMath.CategoryTheory.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Functors. Require Import UniMath.CategoryTheory.DisplayedCats.NaturalTransformations. Require Import UniMath.CategoryTheory.DisplayedCats.Isos. Require Import UniMath.CategoryTheory.DisplayedCats.Total. Require Import UniMath.CategoryTheory.DisplayedCats.Univalence. Require Import UniMath.CategoryTheory.DisplayedCats.Constructions. Require Import UniMath.CategoryTheory.DisplayedCats.DisplayedCatEq. Require Import UniMath.CategoryTheory.DisplayedCats.Examples.DispFunctorPair. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TwoSidedDispCat. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.DisplayedFunctor. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.DisplayedNatTrans. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Isos. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Univalence. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.Strictness. Require Import UniMath.CategoryTheory.TwoSidedDisplayedCats.TransportLaws. Section FromIso. End FromIso.