proposition: Lemma monoidal_is_binproduct_from_comonoid (pI : εI = identity (monoidal_unit V)) (pT : ∏ x y : V, δ_{(x ⊗ y ,, m _) : comonoid V} · ((identity x #⊗ ε_{(y ,, m y) : comonoid V}) #⊗ (ε_{(x ,, m x) : comonoid V} #⊗ identity y) · mon_runitor x #⊗ mon_lunitor y) = identity (x ⊗ y)) : tensor_isBinProduct (monoidal_is_semicartesian_from_comonoid pI).
proof: Proof. intros x y. use make_isBinProduct. intros z fx fy. simple refine ((_ ,, _ ,, _) ,, _). - exact (make_isbinprod_from_comonoid_existence_mor fx fy). - exact (make_is_binprod_from_comonoids_existence_mor_1 pI fx fy). - exact (make_is_binprod_from_comonoids_existence_mor_2 pI fx fy). - intro f. use subtypePath. { intro ; apply isapropdirprod ; apply homset_property. } exact (make_is_binprod_from_comonoids_uniqueness fx fy (! pT x y) (pr1 f) (pr12 f) (pr22 f)). 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.Limits.BinProducts UniMath.CategoryTheory.DisplayedCats.Core UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors UniMath.CategoryTheory.Monoidal.Categories UniMath.CategoryTheory.Monoidal.Functors UniMath.CategoryTheory.Monoidal.Displayed.Monoidal UniMath.CategoryTheory.Monoidal.Displayed.TotalMonoidal UniMath.CategoryTheory.Monoidal.Structure.Cartesian UniMath.CategoryTheory.Monoidal.Structure.Symmetric UniMath.CategoryTheory.Monoidal.Structure.SymmetricDiagonal UniMath.CategoryTheory.Monoidal.Comonoids.Category UniMath.CategoryTheory.Monoidal.Comonoids.Tensor