(**********************************************************************)
(** * Extensional Hilbert's epsilon description operator -> Excluded-Middle *)

(** Proof sketch from Bell [[Bell93]] (with thanks to P. Castéran) *)

Local Notation inhabited A := A (only parsing).Local Notation eps := (epsilon bool true) (only parsing).

(* Specifications: *)
Theorem extensional_epsilon_imp_EM : forall P:Prop, P \/ ~ P.