(** * Emptiness is decidable *)
Definition Empty (E : R -> Prop) :=
Lub_Rbar (fun x => x = 0 \/ E x) = Glb_Rbar (fun x => x = 0 \/ E x)
/\ Lub_Rbar (fun x => x = 1 \/ E x) = Glb_Rbar (fun x => x = 1 \/ E x).

(* Specifications: *)
Lemma Empty_correct_1 (E : R -> Prop) :
Empty E -> forall x, ~ E x.
Lemma Empty_correct_2 (E : R -> Prop) :
(forall x, ~ E x) -> Empty E.
Lemma Empty_dec (E : R -> Prop) :
{~Empty E}+{Empty E}.
Lemma not_Empty_dec (E : R -> Prop) : (Decidable.decidable (exists x, E x)) ->
{(exists x, E x)} + {(forall x, ~ E x)}.
Lemma uniqueness_dec P : (exists ! x : R, P x) -> {x : R | P x}.