Definition cartesianmonoidalcat_data : monoidal_data C. Proof. use make_monoidal_data. - exact tensorfrombinprod. - exact (TerminalObject terminal). - intro c. apply BinProductPr2. - intro c. apply BinProductArrow. * apply TerminalArrow. * exact (identity c). - intro c. apply BinProductPr1. - intro c. apply BinProductArrow. * exact (identity c). * apply TerminalArrow. - intros c1 c2 c3. apply BinProductArrow. + use compose. 2: {apply BinProductPr1. } apply BinProductPr1. + apply BinProductArrow. * use compose. 2: {apply BinProductPr1. } apply BinProductPr2. * apply BinProductPr2. - intros a b c. apply BinProductArrow. + apply BinProductArrow. * apply BinProductPr1. * use compose. 2: {apply BinProductPr2. } apply BinProductPr1. + use compose. 2: {apply BinProductPr2. } apply BinProductPr2. Defined.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.exponentials. Require Import UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Cartesian. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.Closed. Require Import UniMath.CategoryTheory.Limits.BinProducts. Require Import UniMath.CategoryTheory.Limits.Terminal. Require Import UniMath.CategoryTheory.Categories.HSET.Core. Require Import UniMath.CategoryTheory.Categories.HSET.Limits. Import BifunctorNotations. Import MonoidalNotations. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Adjunctions.Core.