Definition inject_Z : Z -> CReal
:= fun n => inject_Q (n # 1).
Notation "0" := (inject_Q 0) : CReal_scope.
Notation "1" := (inject_Q 1) : CReal_scope.
Notation "2" := (inject_Q 2) : CReal_scope.

(* Specifications: *)
Lemma CRealLt_0_1 : CRealLt (inject_Q 0) (inject_Q 1).
Lemma CReal_injectQPos : forall q : Q,
(0 < q)%Q -> CRealLt (inject_Q 0) (inject_Q q).
Lemma inject_Q_compare : forall (x : CReal) (p : Z),
x <= inject_Q (seq x p + (2^p)).