proposition: Proposition make_psfunctor_from_cat_laws : psfunctor_laws make_psfunctor_from_cat_data.
proof: Proof. repeat split. - unfold psfunctor_id2_law ; cbn ; intros x y f. assert (@id2 (cat_to_bicat C) _ _ f = idpath _) as p. { apply homset_property. } etrans. { do 3 apply maponpaths. exact p. } cbn. apply idpath. - unfold psfunctor_vcomp2_law ; cbn ; intros x y f g h p q. induction p, q ; cbn. assert (@id2 (cat_to_bicat C) _ _ f = idpath _) as p. { apply homset_property. } rewrite <- !p. etrans. { do 3 apply maponpaths. refine (@id2_left (cat_to_bicat C) _ _ _ _ _ @ _). exact p. } cbn. rewrite id2_right. apply idpath. - unfold psfunctor_lunitor_law ; cbn ; intros x y f. refine (Flun x y f @ _). do 4 apply maponpaths. apply homset_property. - unfold psfunctor_runitor_law ; cbn ; intros x y f. refine (Frun x y f @ _). do 4 apply maponpaths. apply homset_property. - unfold psfunctor_lassociator_law ; cbn ; intros w x y z f g h. refine (_ @ Fassoc w x y z f g h). do 4 apply maponpaths. apply homset_property. - unfold psfunctor_lwhisker_law ; cbn ; intros x y z f g₁ g₂ p. induction p. cbn. rewrite lwhisker_id2. rewrite id2_left. assert (@id2 (cat_to_bicat C) _ _ g₁ = idpath _) as p. { apply homset_property. } assert (@id2 (cat_to_bicat C) _ _ (f · g₁) = idpath _) as q. { apply homset_property. } rewrite <- p. etrans. { do 4 apply maponpaths. refine (@lwhisker_id2 (cat_to_bicat C) _ _ _ _ _ @ _). exact q. } cbn. apply id2_right. - unfold psfunctor_rwhisker_law ; cbn ; intros x y z f₁ f₂ g p. induction p. cbn. rewrite id2_rwhisker. rewrite id2_left. assert (@id2 (cat_to_bicat C) _ _ f₁ = idpath _) as p. { apply homset_property. } assert (@id2 (cat_to_bicat C) _ _ (f₁ · g) = idpath _) as q. { apply homset_property. } rewrite <- p. etrans. { do 4 apply maponpaths. refine (@id2_rwhisker (cat_to_bicat C) _ _ _ _ _ @ _). exact q. } cbn. apply id2_right. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.Univalence UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.IndexedCategories.IndexedCategory UniMath.CategoryTheory.opp_precat UniMath.CategoryTheory.OppositeCategory.Core UniMath.Bicategories.Core.Bicat UniMath.Bicategories.Core.Discreteness UniMath.Bicategories.Core.Invertible_2cells UniMath.Bicategories.Core.Univalence UniMath.Bicategories.Core.Examples.BicatOfUnivCats UniMath.Bicategories.Core.Examples.DiscreteBicat UniMath.Bicategories.PseudoFunctors.Display.PseudoFunctorBicat UniMath.Bicategories.PseudoFunctors.PseudoFunctor