Definition IQR (q : Q) := Rabst (inject_Q q).

(* Specifications: *)
Lemma IQR_zero_quot : Req_constr (IQR 0) R0.
Lemma Rring : ring_theory (IQR 0) (IQR 1) Rplus Rmult (fun x y : R => (x + - y)%R) Ropp Req_constr.
Lemma RringExt : ring_eq_ext Rplus Rmult Ropp Req_constr.
Lemma Rleft_inverse : forall r : R, (sum (r < IQR 0) (IQR 0 < r)) -> Req_constr (/ r * r) (IQR 1).
Lemma Rinv_pos : forall r : R, (sum (r < IQR 0) (IQR 0 < r)) -> IQR 0 < r -> IQR 0 < / r.
Lemma Rmult_pos : forall x y : R, IQR 0 < x -> IQR 0 < y -> IQR 0 < x * y.
Lemma Rplus_reg_l : forall r r1 r2, r + r1 < r + r2 -> r1 < r2.
Lemma Rzero_lt_one : IQR 0 < IQR 1.
Lemma plus_IQR : forall q r : Q, IQR (q + r) = IQR q + IQR r.
Lemma mult_IQR : forall q r : Q, IQR (q * r) = IQR q * IQR r.
Lemma IQR_lt : forall n m:Q, (n < m)%Q -> IQR n < IQR m.
Lemma lt_IQR : forall n m:Q, IQR n < IQR m -> (n < m)%Q.
Lemma IQR_plus_quot : forall q r : Q, Req_constr (IQR (q + r)) (IQR q + IQR r).
Lemma IQR_mult_quot : forall q r : Q, Req_constr (IQR (q * r)) (IQR q * IQR r).
Lemma Rabove_pos : forall x : R, {n : positive & x < IQR (Z.pos n # 1)}.
Lemma Rarchimedean : forall x y : R, x < y -> {q : Q & ((x < IQR q) * (IQR q < y))%type}.
Lemma RabsLUB : forall x y : R, (y < x -> False) /\ (y < - x -> False) <-> (y < Rabst (CReal_abs (Rrepr x)) -> False).
Lemma Rcomplete : forall xn : nat -> R, (forall p : positive, {n : nat | forall i j : nat, (n <= i)%nat -> (n <= j)%nat -> IQR (1 # p) < Rabst (CReal_abs (Rrepr (xn i + - xn j))) -> False}) -> {l : R & forall p : positive, {n : nat | forall i : nat, (n <= i)%nat -> IQR (1 # p) < Rabst (CReal_abs (Rrepr (xn i + - l))) -> False}}.