(* An enumeration of R reaches any open interval of R,
   extract the first two real numbers in it. *)
Definition first_in_holed_interval (u : nat -> R) (v : R -> nat) (a b h : R)
  : enumeration R u v -> Rlt a b
    -> { n : nat | in_holed_interval a b h u n
                /\ forall k : nat, in_holed_interval a b h u k -> n <= k }.

(* Specifications: *)
Lemma first_in_holed_interval_works (u : nat -> R) (v : R -> nat) (a b h : R) (pen : enumeration R u v) (plow : Rlt a b) : let (c,_) := first_in_holed_interval u v a b h pen plow in forall x:R, Rlt a x -> Rlt x b -> x <> h -> x <> u c -> c < v x.