proposition: Lemma help₂ (f : C⟦X,Y⟧) (g g' : C⟦Y,X⟧) (η : id₁ X ==> g ∘ f) (η' : id₁ X ==> g' ∘ f) : g ◅ ((f ◅ η') ▻ g) o (g ◅ (linvunitor f ▻ g) o (lassociator _ _ _ o η ▻ g)) = g ◅ (rassociator _ _ _) o lassociator _ _ _ o η ▻ (g' ∘ f ∘ g) o rinvunitor _ o η' ▻ g.
proof: Proof. rewrite !vassocr. rewrite !(maponpaths (λ z, _ o (_ o z)) (!(vassocr _ _ _))). rewrite <- help₁. rewrite <- !vassocr. apply maponpaths. rewrite <- !rwhisker_vcomp. rewrite !lwhisker_hcomp, !rwhisker_hcomp. rewrite !vassocr. rewrite !(maponpaths (fun z => _ o z) (!(vassocr _ _ _))). rewrite <- hcomp_identity. rewrite hcomp_lassoc. rewrite !vassocr. rewrite hcomp_lassoc. rewrite <- !vassocr. apply maponpaths. rewrite <- !interchange. rewrite !id2_left. rewrite hcomp_rassoc. rewrite !vassocr. rewrite <- (id2_right (id₂ g)). rewrite !interchange. rewrite triangle_r_inv. rewrite id2_right. reflexivity. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.Bicategories.Core.Bicat UniMath.Bicategories.Core.Unitors UniMath.Bicategories.Morphisms.Adjunctions UniMath.Bicategories.Core.Invertible_2cells UniMath.Bicategories.Core.BicategoryLaws UniMath.Bicategories.Core.Univalence UniMath.Bicategories.Core.TransportLaws UniMath.Bicategories.Core.EquivToAdjequiv