Lemma make_is_binprod_from_comonoids_uniqueness (f : V⟦z, x ⊗ y⟧) (px : f · (identity x #⊗ εy · mon_runitor x) = fx) (py : f · (εx #⊗ identity y · mon_lunitor y) = fy) : f = δz · fx #⊗ fy. Proof. rewrite <- px. rewrite <- py. clear px py. etrans. 2: { apply maponpaths. apply pathsinv0. apply tensor_comp_mor. } etrans. 2: { do 2 apply maponpaths. apply pathsinv0. apply tensor_comp_mor. } rewrite assoc. etrans. 2: { apply maponpaths_2. apply pathsinv0. apply (mf _ _ f). } refine (! id_right _ @ _). rewrite assoc'. apply maponpaths. apply p. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Limits.BinProducts. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors. Require Import UniMath.CategoryTheory.Monoidal.Categories. Import BifunctorNotations. Require Import UniMath.CategoryTheory.Monoidal.Functors. Require Import UniMath.CategoryTheory.Monoidal.Displayed.Monoidal. Require Import UniMath.CategoryTheory.Monoidal.Displayed.TotalMonoidal. Require Import UniMath.CategoryTheory.Monoidal.Structure.Cartesian. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.SymmetricDiagonal. Require Import UniMath.CategoryTheory.Monoidal.Comonoids.Category. Require Import UniMath.CategoryTheory.Monoidal.Comonoids.Tensor. Import MonoidalNotations. Import ComonoidNotations. Import ComonoidNotations.