Require Export Shared.Prelim.
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.