Proposition monad_to_hset_cartesian_struct_laws : hset_cartesian_struct_laws monad_to_hset_cartesian_struct_data. Proof. split4. - intros X f ; cbn. apply idpath. - intros X Y f g ; cbn. apply idpath. - intros X Y f g ; cbn. apply idpath. - intros W X Y fW fX fY g₁ g₂ Mg₁ Mg₂ ; cbn -[Monad] in *. use funextsec. intro x. use pathsdirprod ; cbn. + refine (eqtohomot Mg₁ _ @ _). apply maponpaths. refine (!_). etrans. { refine (!_). apply (eqtohomot (functor_comp M _ _)). } apply idpath. + refine (eqtohomot Mg₂ _ @ _). apply maponpaths. refine (!_). etrans. { refine (!_). apply (eqtohomot (functor_comp M _ _)). } apply idpath. Qed.
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.Adjunctions.Core. Require Import UniMath.CategoryTheory.Categories.HSET.All. Require Import UniMath.CategoryTheory.Limits.BinProducts. Require Import UniMath.CategoryTheory.Limits.BinCoproducts. Require Import UniMath.CategoryTheory.Limits.Equalizers. Require Import UniMath.CategoryTheory.Limits.Coequalizers. Require Import UniMath.CategoryTheory.Limits.Products. Require Import UniMath.CategoryTheory.Limits.Preservation. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Structures.CartesianStructure. Require Import UniMath.CategoryTheory.DisplayedCats.Structures.StructureLimitsAndColimits. Require Import UniMath.CategoryTheory.Monads.Monads.