Proposition make_psfunctor_from_cat_laws : psfunctor_laws make_psfunctor_from_cat_data. 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.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.IndexedCategories.IndexedCategory. Require Import UniMath.CategoryTheory.opp_precat. Require Import UniMath.CategoryTheory.OppositeCategory.Core. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Discreteness. Require Import UniMath.Bicategories.Core.Invertible_2cells. Require Import UniMath.Bicategories.Core.Univalence. Require Import UniMath.Bicategories.Core.Examples.BicatOfUnivCats. Require Import UniMath.Bicategories.Core.Examples.DiscreteBicat. Require Import UniMath.Bicategories.PseudoFunctors.Display.PseudoFunctorBicat. Require Import UniMath.Bicategories.PseudoFunctors.PseudoFunctor. Import PseudoFunctor.Notations. Section PseudoFunctorFromCat. End PseudoFunctorFromCat.