Definition pred (A:Type) := A -> Prop.Definition derives (A:Type) (P Q:pred A) := forall a:A, P a -> Q a.

(* Specifications: *)
Lemma pred_ext : forall A (P Q:pred A), derives P Q -> derives Q P -> P = Q.
Lemma derives_cut {A} : forall Q P R : pred A, derives P Q -> derives Q R -> derives P R.