(* The Key Lemma: comparison between three reals. *)

Definition Rcompare : forall x y, Rlt x y -> forall z, Rlt x z + Rlt z y.(* Specialized continuity components for sqr2 = X^2-2 *)

Definition sqr2 := fun a => (a * a)+(-2).Definition sqr2_h := fun a (_:nat) => sqr2 a.Definition sqr2_alpha := fun (_:nat) => O.Definition sqr2_w := fun k => S (S (S k)).(* Specialized application of sqr2 to a real. *)

Definition sqr2_apply : R -> R.(* sqr2 is strictly increasing at least on interval [1;infinity] *)

Definition sqr2_incr : forall x y, Rle (inject_Q 1) x -> Rle (inject_Q 1) y -> 
  Rlt x y -> Rlt (sqr2_apply x) (sqr2_apply y).

Lemma two_p_correct : forall (n:nat), 2^n == two_p n.