Definition inject_Q (q : Q) : CReal :=
{|
  seq := (fun n : Z => q);
  scale := Qbound_ltabs_ZExp2 q;
  cauchy := inject_Q_cauchy q;
  bound := (fun _ : Z => Qbound_ltabs_ZExp2_spec q)
|}.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.

Lemma CReal_injectQPos : forall q : Q, (0 < q)%Q -> CRealLt (inject_Q 0) (inject_Q q).