Definition hset_cartesian_struct_laws (P : hset_cartesian_struct_data) : UU := (∏ (X : hSet) (PX : P X), mor_hset_struct P PX (hset_struct_unit P) (λ _ : X, tt)) × (∏ (X Y : hSet) (PX : P X) (PY : P Y), mor_hset_struct P (hset_struct_prod P PX PY) PX dirprod_pr1) × (∏ (X Y : hSet) (PX : P X) (PY : P Y), mor_hset_struct P (hset_struct_prod P PX PY) PY dirprod_pr2) × (∏ (W X Y : hSet) (PW : P W) (PX : P X) (PY : P Y) (f : W → X) (g : W → Y) (Mf : mor_hset_struct P PW PX f) (Mg : mor_hset_struct P PW PY g), mor_hset_struct P PW (hset_struct_prod P PX PY) (prodtofuntoprod (f ,, g))).
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.Univalence. Require Import UniMath.CategoryTheory.Adjunctions.Core. Require Import UniMath.CategoryTheory.Categories.HSET.All. Require Import UniMath.CategoryTheory.Limits.BinProducts. Require Import UniMath.CategoryTheory.Limits.Terminal. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Total. Require Import UniMath.CategoryTheory.DisplayedCats.Univalence. Require Import UniMath.CategoryTheory.DisplayedCats.Constructions. Require Import UniMath.CategoryTheory.DisplayedCats.SIP. Require Import UniMath.CategoryTheory.DisplayedCats.Binproducts.