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.