Definition hset_struct_laws (P : hset_struct_data) : UU := (∏ (X : hSet), isaset (P X)) × (∏ (X Y : hSet) (PX : P X) (PY : P Y) (f : X → Y), isaprop (mor_hset_struct P PX PY f)) × (∏ (X : hSet) (PX : P X), mor_hset_struct P PX PX (λ x, x)) × (∏ (X Y Z : hSet) (PX : P X) (PY : P Y) (PZ : P Z) (f : X → Y) (g : Y → Z) (Mf : mor_hset_struct P PX PY f) (Mg : mor_hset_struct P PY PZ g), mor_hset_struct P PX PZ (λ x, g(f x))) × (∏ (X : hSet) (PX PX' : P X), mor_hset_struct P PX PX' (λ x, x) → mor_hset_struct P PX' PX (λ x, x) → PX = PX').
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.