Definition is_functor_r_lift {C: precategory_data} {D: precategory} {J : functor C D} (R : RelMonad) : is_functor (RelMonad_ob R,, @r_lift _ _ J R). Proof. split; [intro c | intros a b c f g]; cbn; unfold r_lift; cbn. - etrans. apply maponpaths. etrans. eapply (maponpaths (λ x, x · _ )). apply functor_id. apply id_left. apply (r_bind_r_eta R). - etrans. 2: { eapply pathsinv0; apply (r_bind_r_bind R). } apply maponpaths. etrans. apply map_on_two_paths. apply functor_comp. apply idpath. etrans. 2: { etrans. 2: apply assoc. eapply pathsinv0. apply maponpaths. apply (r_eta_r_bind R). } apply pathsinv0, assoc. Defined.
Require Import UniMath.Foundations.PartD. Require Import UniMath.Foundations.Propositions. Require Import UniMath.Foundations.Sets. Require Import UniMath.MoreFoundations.Tactics. Require Import UniMath.MoreFoundations.PartA. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.FunctorCategory. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Adjunctions.Core.