proposition: Lemma BinProduct_assoc_is_inverse : is_inverse_in_precat BinProduct_assoc_mor BinProduct_assoc_invmor.
proof: Proof. use make_is_inverse_in_precat. - unfold BinProduct_assoc_mor, BinProduct_assoc_invmor. use BinProductArrowsEq. * now rewrite id_left, assoc', BinProductPr1Commutes, assoc, BinProductPr1Commutes, BinProductOfArrowsPr1, id_right. * now rewrite id_left, assoc', BinProductPr2Commutes, postcompWithBinProductArrow, id_right, BinProductOfArrowsPr2, <-precompWithBinProductArrow, <-(id_left (BinProductPr1 C Pbc)), <-(id_left (BinProductPr2 C Pbc)), <-BinProductArrowEta, id_right. - unfold BinProduct_assoc_mor, BinProduct_assoc_invmor. use BinProductArrowsEq. * now rewrite id_left, assoc', BinProductPr1Commutes, postcompWithBinProductArrow, id_right, BinProductOfArrowsPr1, <-precompWithBinProductArrow, <-(id_left (BinProductPr1 C Pab)), <-(id_left (BinProductPr2 C Pab)), <-BinProductArrowEta, id_right. * now rewrite id_left, assoc', BinProductPr2Commutes, assoc, BinProductPr2Commutes, BinProductOfArrowsPr2, id_right. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Core.Univalence UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Monics UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.Limits.Terminal UniMath.CategoryTheory.Limits.Zero UniMath.CategoryTheory.Limits.Graphs.Colimits UniMath.CategoryTheory.Limits.Graphs.Limits UniMath.CategoryTheory.Limits.Products UniMath.CategoryTheory.Limits.Terminal UniMath.CategoryTheory.FunctorCategory UniMath.Combinatorics.StandardFiniteSets