Definition lift_functor : (MonadAlg S) ⟶ (MonadAlg S). Proof. use make_functor. - exists T_on_SAlg. intros X Y f. exists ((# T) (mor_from_Algebra_mor S f)). abstract (red; cbn; rewrite <- assoc; rewrite <- functor_comp; rewrite Algebra_mor_commutes; rewrite functor_comp; rewrite 2 assoc; apply cancel_postcomposition; apply pathsinv0; apply a). - abstract (split; red; intros; cbn; apply subtypePairEquality'; [ apply functor_id | apply homset_property | apply functor_comp | apply homset_property]). Defined.
Require Import UniMath.Foundations.PartD. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.whiskering. Require Import UniMath.CategoryTheory.Adjunctions.Core. Require Import UniMath.CategoryTheory.Monads.Monads. Require Import UniMath.CategoryTheory.Monads.Derivative.