(** * 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}.