Definition reduces X Y (p : X -> Prop) (q : Y -> Prop) := exists f : X -> Y, forall x, p x <-> q (f x).Notation "p ⪯ q" := (reduces p q) (at level 50).

(* Specifications: *)
Lemma reduces_reflexive X (p : X -> Prop) : p ⪯ p.
Lemma reduces_transitive X Y Z (p : X -> Prop) (q : Y -> Prop) (r : Z -> Prop) : p ⪯ q -> q ⪯ r -> p ⪯ r.