Definition CRup_nat {R : ConstructiveReals} (x : CRcarrier R)
: { n : nat  &  x < CR_of_Q R (Z.of_nat n #1) }.
Definition CRfloor {R : ConstructiveReals} (a : CRcarrier R)
: { p : Z  &  prod (CR_of_Q R (p#1) < a)
(a < CR_of_Q R (p#1) + CR_of_Q R 2) }.

(* Specifications: *)
Lemma CRplus_appart_reg_l : forall {R : ConstructiveReals} (r r1 r2 : CRcarrier R),
(r + r1) ≶ (r + r2) -> r1 ≶ r2.
Lemma CRplus_appart_reg_r : forall {R : ConstructiveReals} (r r1 r2 : CRcarrier R),
(r1 + r) ≶ (r2 + r) -> r1 ≶ r2.
Lemma CRmult_appart_reg_l
: forall {R : ConstructiveReals} (r r1 r2 : CRcarrier R),
0 < r -> (r * r1) ≶ (r * r2) -> r1 ≶ r2.
Lemma CRmult_appart_reg_r
: forall {R : ConstructiveReals} (r r1 r2 : CRcarrier R),
0 < r -> (r1 * r) ≶ (r2 * r) -> r1 ≶ r2.