Definition hset_struct_smash_prod_lunitor : leftunitor_data smash_product_tensor_data (hset_struct_with_smash_closed_unit P). Proof. intros X. simple refine (_ ,, _). - use map_from_smash. + exact (λ b x, if b then x else hset_struct_point P (pr2 X)). + abstract (intros x₁ x₂ ; cbn ; rewrite hset_struct_with_smash_point_unit ; apply idpath). + abstract (intros b x ; cbn ; rewrite hset_struct_with_smash_point_unit ; induction b ; apply idpath). + abstract (intros b₁ b₂ ; cbn ; induction b₁ ; induction b₂ ; cbn ; apply idpath). - apply hset_struct_with_smash_map_from_smash. use (hset_struct_with_smash_map_bool (pr122 P)). + apply hset_struct_pr1. + apply hset_struct_pr2. Defined.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.Closed. Require Import UniMath.CategoryTheory.DisplayedCats.Structures.CartesianStructure. Require Import UniMath.CategoryTheory.DisplayedCats.Structures.StructureLimitsAndColimits. Require Import UniMath.CategoryTheory.DisplayedCats.Structures.StructuresSmashProduct. Require Import UniMath.CategoryTheory.Limits.BinProducts. Require Import UniMath.CategoryTheory.Limits.Terminal.