Definition plift2 {M} `{PredLift M} {X Y} (P : X -> Y -> Prop) :
M X -> M Y -> Prop :=
fun mx my =>
plift (fun x => plift (P x) my) mx.

Lemma plift2_bind_r {M} `{PredLift M} {X Y Z}
(P : Z -> X -> Prop) (Q : Z -> Y -> Prop)
(m : M X) (f : X -> M Y) (n : M Z) :
plift2 P n m ->
(forall x, plift (fun z => P z x) n -> plift2 Q n (f x)) ->
plift2 Q n (mbind m f).