proposition: Proposition comp_square_between_companions : comp_ver_globular_square γ₁ γ₂ = id_h_square_bicat v₁.
proof: Proof. unfold γ₁, γ₂, square_between_companions. unfold comp_ver_globular_square. etrans. { do 2 apply maponpaths. etrans. { do 3 apply maponpaths. refine (!_). apply runitor_v_comp_square''. } etrans. { apply maponpaths_2. do 2 apply maponpaths. refine (!_). apply lunitor_v_comp_square''. } rewrite !rwhisker_lwhisker_square. rewrite <- !lwhisker_hcomp_square. do 2 apply maponpaths. rewrite <- !rwhisker_lwhisker_square. rewrite <- !rwhisker_hcomp_square. do 2 apply maponpaths. rewrite !lrwhisker_hcomp_square. rewrite lassociator_v_comp_square''. rewrite !rwhisker_lwhisker_square. rewrite <- lwhisker_hcomp_square. apply maponpaths. rewrite <- !rwhisker_square_comp. etrans. { do 2 apply maponpaths_2. rewrite <- lunitor_triangle. rewrite !vassocr. rewrite rassociator_lassociator. rewrite id2_left. rewrite vcomp_runitor. rewrite !vassocl. etrans. { apply maponpaths. rewrite !vassocr. rewrite lunitor_linvunitor. apply id2_left. } apply runitor_rinvunitor. } rewrite rwhisker_square_id. rewrite !double_bicat_interchange. rewrite are_companions_right'. rewrite <- !id_h_square_bicat_id. rewrite lunitor_h_comp_square'. rewrite runitor_h_comp_square'. rewrite <- !dwhisker_vcomp_square. apply maponpaths. rewrite !dwhisker_uwhisker_square. rewrite <- uwhisker_vcomp_square. rewrite !dwhisker_uwhisker_square. rewrite <- uwhisker_vcomp_square. apply maponpaths. rewrite !ud_whisker_vcomp_square. etrans. { apply maponpaths_2. rewrite <- !dwhisker_square_comp. rewrite rinvunitor_runitor. rewrite linvunitor_lunitor. rewrite !dwhisker_square_id. apply runitor_v_comp_square'. } rewrite l_rwhisker_v_comp_square. rewrite l_lwhisker_v_comp_square. do 2 apply maponpaths. apply are_companions_left'. } rewrite <- !rwhisker_lwhisker_square. rewrite <- !rwhisker_uwhisker_square. rewrite <- !rwhisker_dwhisker_square. rewrite <- !rwhisker_uwhisker_square. rewrite <- !rwhisker_lwhisker_square. rewrite <- !rwhisker_dwhisker_square. rewrite <- !rwhisker_uwhisker_square. rewrite <- !rwhisker_square_comp. etrans. { apply maponpaths_2. etrans. { apply maponpaths. rewrite !vassocr. rewrite vcomp_runitor. rewrite runitor_rinvunitor. apply id2_left. } apply rinvunitor_runitor. } rewrite rwhisker_square_id. rewrite dwhisker_uwhisker_square. rewrite !lwhisker_uwhisker_square. rewrite dwhisker_uwhisker_square. rewrite <- uwhisker_square_comp. rewrite linvunitor_lunitor. rewrite uwhisker_square_id. rewrite !lwhisker_dwhisker_square. rewrite <- !lwhisker_square_comp. rewrite <- !dwhisker_square_comp. rewrite lunitor_runitor_identity. rewrite rinvunitor_runitor. rewrite dwhisker_square_id. etrans. { apply maponpaths_2. rewrite !vassocl. etrans. { do 2 apply maponpaths. rewrite !vassocr. rewrite runitor_rwhisker. rewrite vcomp_lunitor. apply idpath. } etrans. { apply maponpaths. rewrite !vassocr. rewrite linvunitor_lunitor. apply id2_left. } apply linvunitor_lunitor. } apply lwhisker_square_id. Qed.
imports: UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Prelude UniMath.Bicategories.Core.Bicat UniMath.Bicategories.Core.Unitors UniMath.Bicategories.Core.Invertible_2cells UniMath.Bicategories.Core.Univalence UniMath.Bicategories.Core.BicategoryLaws UniMath.Bicategories.Morphisms.Adjunctions UniMath.Bicategories.DoubleCategories.DoubleBicat.VerityDoubleBicat UniMath.Bicategories.DoubleCategories.DoubleBicat.DerivedLaws UniMath.Bicategories.DoubleCategories.DoubleBicat.CellsAndSquares UniMath.Bicategories.DoubleCategories.DoubleBicat.UnderlyingCats UniMath.Bicategories.DoubleCategories.DoubleBicat.LocalUnivalence UniMath.Bicategories.DoubleCategories.DoubleBicat.CompanionPairs