proposition: Lemma binprod_lunitor {a₁ a₂ b₁ b₂ : B} (f : a₁ --> a₂) (g : b₁ --> b₂) : lunitor (f ⊗₁ g) = ((pair_1cell_id_id_invertible _ _)^-1 ▹ f ⊗₁ g) • pair_1cell_comp (id₁ _) f (id₁ _) g • lunitor f ⊗₂ lunitor g.
proof: Proof. use binprod_ump_2cell_unique_alt. - apply (pr2 B). - rewrite <- !rwhisker_vcomp. rewrite !vassocl. refine (!_). etrans. { do 2 apply maponpaths. apply pair_2cell_pr1. } etrans. { apply maponpaths. apply maponpaths_2. apply binprod_ump_2cell_pr1. } rewrite !vassocr. rewrite rwhisker_rwhisker_alt. rewrite !vassocl. etrans. { apply maponpaths. rewrite !vassocr. rewrite vcomp_whisker. rewrite !vassocl. apply maponpaths. rewrite !vassocr. rewrite <- rwhisker_rwhisker. rewrite !vassocl. apply maponpaths. etrans. { apply maponpaths_2. apply maponpaths. apply binprod_ump_2cell_pr1. } cbn. rewrite !vassocr. rewrite rwhisker_vcomp. rewrite !vassocl. rewrite vcomp_linv. rewrite id2_right. do 2 apply maponpaths. rewrite !vassocr. rewrite vcomp_linv. rewrite id2_left. apply idpath. } etrans. { do 2 apply maponpaths. rewrite <- rwhisker_vcomp. rewrite !vassocr. rewrite lunitor_triangle. rewrite rwhisker_hcomp. rewrite <- triangle_l_inv. rewrite <- lwhisker_hcomp. rewrite !vassocl. etrans. { do 2 apply maponpaths. rewrite !vassocr. rewrite lassociator_rassociator. rewrite id2_left. apply idpath. } apply maponpaths. rewrite !vassocr. rewrite lwhisker_vcomp. rewrite linvunitor_lunitor. rewrite lwhisker_id2. apply id2_left. } etrans. { apply maponpaths. rewrite !vassocr. rewrite vcomp_lunitor. rewrite !vassocl. rewrite vcomp_rinv. apply id2_right. } rewrite <- lunitor_triangle. rewrite !vassocr. rewrite rassociator_lassociator. apply id2_left. - rewrite <- !rwhisker_vcomp. rewrite !vassocl. refine (!_). etrans. { do 2 apply maponpaths. apply pair_2cell_pr2. } etrans. { apply maponpaths. apply maponpaths_2. apply binprod_ump_2cell_pr2. } rewrite !vassocr. rewrite rwhisker_rwhisker_alt. rewrite !vassocl. etrans. { apply maponpaths. rewrite !vassocr. rewrite vcomp_whisker. rewrite !vassocl. apply maponpaths. rewrite !vassocr. rewrite <- rwhisker_rwhisker. rewrite !vassocl. apply maponpaths. etrans. { apply maponpaths_2. apply maponpaths. apply binprod_ump_2cell_pr2. } cbn. rewrite !vassocr. rewrite rwhisker_vcomp. rewrite !vassocl. rewrite vcomp_linv. rewrite id2_right. do 2 apply maponpaths. rewrite !vassocr. rewrite vcomp_linv. rewrite id2_left. apply idpath. } etrans. { do 2 apply maponpaths. rewrite <- rwhisker_vcomp. rewrite !vassocr. rewrite lunitor_triangle. rewrite rwhisker_hcomp. rewrite <- triangle_l_inv. rewrite <- lwhisker_hcomp. rewrite !vassocl. etrans. { do 2 apply maponpaths. rewrite !vassocr. rewrite lassociator_rassociator. rewrite id2_left. apply idpath. } apply maponpaths. rewrite !vassocr. rewrite lwhisker_vcomp. rewrite linvunitor_lunitor. rewrite lwhisker_id2. apply id2_left. } etrans. { apply maponpaths. rewrite !vassocr. rewrite vcomp_lunitor. rewrite !vassocl. rewrite vcomp_rinv. apply id2_right. } rewrite <- lunitor_triangle. rewrite !vassocr. rewrite rassociator_lassociator. apply id2_left. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.Univalence UniMath.CategoryTheory.Categories.StandardCategories UniMath.CategoryTheory.Equivalences.Core UniMath.CategoryTheory.Equivalences.FullyFaithful UniMath.CategoryTheory.PrecategoryBinProduct UniMath.Bicategories.Core.Bicat UniMath.Bicategories.Core.Invertible_2cells UniMath.Bicategories.Core.BicategoryLaws UniMath.Bicategories.Core.Unitors UniMath.Bicategories.Core.Examples.BicatOfUnivCats UniMath.Bicategories.Morphisms.Adjunctions UniMath.Bicategories.Core.AdjointUnique UniMath.Bicategories.Core.Univalence