Require Export Ensembles.
Require Export Relation_Definitions.
Section MinimalElements.
Variable T:Type.
Variable R:relation T.
(* R is well-founded if and only if every nonempty subset of T has a minimal element *)
Definition minimal_element_property : Prop :=
forall S:Ensemble T, Inhabited S -> exists x:T, In S x /\
forall y:T, In S y -> ~ R y x.

(* Specifications: *)
Lemma WF_implies_MEP: well_founded R -> minimal_element_property.
Lemma MEP_implies_WF: minimal_element_property -> well_founded R.
End MinimalElements.