Proposition algebra_as_coequalizer_ump_unique : isaprop (∑ φ, algebra_as_coequalizer_arr · φ = g). Proof. use invproofirrelevance. intros φ₁ φ₂. use subtypePath. { intro. apply homset_property. } use subtypePath. { intro. apply homset_property. } refine (!(id_left _) @ _ @ id_left _). etrans. { apply maponpaths_2. exact (!(monad_algebra_unit hX)). } refine (!_). etrans. { apply maponpaths_2. exact (!(monad_algebra_unit hX)). } rewrite !assoc'. apply maponpaths. refine (!_). exact (maponpaths pr1 (pr2 φ₁ @ !(pr2 φ₂))). 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.