(** * Post's Theorem and Markov's Principle *)
Require Export DecidableEnumerable.
Definition stable P := ~~ P -> P.
Definition MP := forall f : nat -> bool, stable (exists n, f n = true).
Definition mu (p : nat -> Prop) :
(forall x, dec (p x)) -> ex p -> sig p.
Notation mu' d H := (proj1_sig (mu d H)).

(* Specifications: *)
Lemma mu_least (p : nat -> Prop) (d : forall x, dec (p x)) (H : ex p) :
forall n, p n -> mu' d H <= n.