(** Intermediate Value Theorem on an Interval (Proof mainly taken from Reals.Rsqrt_def) and its corollary *)

(* Specifications: *)
Lemma IVT_interv_prelim0 : forall (x y:R) (P:R->bool) (N:nat),
x < y ->
x <= Dichotomy_ub x y P N <= y /\ x <= Dichotomy_lb x y P N <= y.
Lemma IVT_interv_prelim1 : forall (x y x0:R) (D : R -> bool),
x < y ->
Un_cv (dicho_up x y D) x0 ->
x <= x0 <= y.
Lemma IVT_interv : forall (f : R -> R) (x y : R),
(forall a, x <= a <= y -> continuity_pt f a) ->
x < y ->
f x < 0 ->
0 < f y ->
{z : R | x <= z <= y /\ f z = 0}.