proposition: Lemma rel_strength_from_signature_laws : rel_strength_pentagon_eq forget H ϛ' × rel_strength_rectangle_eq forget H ϛ'.
proof: Proof. split. - intro X. apply nat_trans_eq_alt; intro c. cbn. assert (Hyp := nat_trans_eq_weq (homset_property C) _ _ (θ'_strength_law1 X) c). cbn in Hyp. fold θ' H in Hyp. rewrite (functor_id (H X)). do 2 rewrite id_left. etrans; [| exact Hyp ]. clear Hyp. rewrite <- assoc. apply maponpaths. apply pathsinv0. etrans. { apply pathsinv0. apply id_left. } apply cancel_postcomposition. apply pathsinv0. apply (nat_trans_eq_weq (homset_property C) _ _ (auxH1 H X) c). - intros Z Z' X. apply nat_trans_eq_alt; intro c. cbn. unfold PointedFunctorsComposition.ptd_compose. rewrite functorial_composition_post_pre. assert (Hyp := nat_trans_eq_weq (homset_property C) _ _ (θ'_strength_law2 X Z Z') c). cbn in Hyp. fold θ' H in Hyp. do 2 rewrite functor_id. do 2 rewrite id_right. rewrite (functor_id (H X)). do 2 rewrite id_left. rewrite id_left in Hyp. etrans; [| exact Hyp ]. clear Hyp. apply cancel_postcomposition. etrans; [| apply id_right ]. apply maponpaths. etrans. { use (maponpaths (fun x => pr1 (# H x) c)). + exact (identity (functor_compose (functor_compose (pr1 Z) (pr1 Z')) X)). + apply auxH2aux. } rewrite functor_id. apply idpath. Qed.
imports: UniMath.Foundations.PartD UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.whiskering UniMath.CategoryTheory.FunctorCategory UniMath.CategoryTheory.PointedFunctors UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.HorizontalComposition UniMath.CategoryTheory.BicatOfCatsElementary UniMath.SubstitutionSystems.Notation UniMath.SubstitutionSystems.Signatures UniMath.Bicategories.MonoidalCategories.ActionBasedStrength UniMath.Bicategories.MonoidalCategories.EndofunctorsMonoidal UniMath.Bicategories.MonoidalCategories.PointedFunctorsMonoidal