proposition: Proposition equalizer_algebra_laws : monad_algebra_laws equalizer_algebra_map.
proof: Proof. split. - use (EqualizerInsEq (Equalizers_in_HSET X Y f g)). rewrite !assoc'. etrans. { apply maponpaths. apply (EqualizerCommutes (Equalizers_in_HSET X Y f g)). } rewrite !id_left. rewrite !assoc. rewrite <- (nat_trans_ax (η M) _ _ π). rewrite !assoc'. rewrite monad_algebra_unit. rewrite id_right. apply idpath. - use (EqualizerInsEq (Equalizers_in_HSET X Y f g)). rewrite !assoc'. etrans. { apply maponpaths. apply (EqualizerCommutes (Equalizers_in_HSET X Y f g)). } refine (!_). etrans. { apply maponpaths. apply (EqualizerCommutes (Equalizers_in_HSET X Y f g)). } rewrite !assoc. rewrite <- functor_comp. etrans. { apply maponpaths_2. apply maponpaths. apply (EqualizerCommutes (Equalizers_in_HSET X Y f g)). } rewrite <- (nat_trans_ax (μ M) _ _ π). rewrite functor_comp. rewrite !assoc'. rewrite (monad_algebra_mu hX). apply idpath. Qed.
imports: UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Adjunctions.Core UniMath.CategoryTheory.Categories.HSET.All UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.Limits.BinCoproducts UniMath.CategoryTheory.Limits.Equalizers UniMath.CategoryTheory.Limits.Coequalizers UniMath.CategoryTheory.Limits.Products UniMath.CategoryTheory.Limits.Preservation UniMath.CategoryTheory.DisplayedCats.Core UniMath.CategoryTheory.DisplayedCats.Structures.CartesianStructure UniMath.CategoryTheory.DisplayedCats.Structures.StructureLimitsAndColimits UniMath.CategoryTheory.Monads.Monads