Definition free_alg_em_data : functor_data C (eilenberg_moore_cat m). Proof. use make_functor_data. - refine (λ x, make_ob_eilenberg_moore m (m x) (μ m x) _ _). + apply Monad_law1. + refine (!_). apply Monad_law3. - simple refine (λ x y f, make_mor_eilenberg_moore _ _ _). + exact (#m f). + exact (!(nat_trans_ax (μ m) _ _ f)). Defined.
Require Import UniMath.Foundations.All. 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.Isos. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.Categories.EilenbergMoore. Require Import UniMath.CategoryTheory.Subcategory.Core. Require Import UniMath.CategoryTheory.Subcategory.Full. Require Import UniMath.CategoryTheory.Monads.Monads. Require Import UniMath.CategoryTheory.Monads.KleisliCategory. Require Import UniMath.CategoryTheory.whiskering. Require Import UniMath.CategoryTheory.PrecompEquivalence.