(**********************************************************)
(** *    Injection from N to R                            *)
(**********************************************************)
(**********)
Fixpoint INR (n:nat) : R :=
match n with
| O => 0
| S O => 1
| S n => INR n + 1
end.
Arguments INR n%_nat.
(**********************************************************)
(** *    [R] Archimedean                                  *)
(**********************************************************)

(* Specifications: *)
Lemma Rrepr_INR : forall n : nat,
CRealEq (Rrepr (INR n)) (inject_Z (Z.of_nat n)).
Lemma Rrepr_IPR2 : forall n : positive,
CRealEq (Rrepr (IPR_2 n)) (inject_Z (Z.pos (n~0))).
Lemma Rrepr_IPR : forall n : positive,
CRealEq (Rrepr (IPR n)) (inject_Z (Z.pos n)).
Lemma Rrepr_IZR : forall n : Z,
CRealEq (Rrepr (IZR n)) (inject_Z n).
(**********)
Lemma archimed : forall r:R, IZR (up r) > r /\ IZR (up r) - r <= 1.
Definition is_upper_bound (E:R -> Prop) (m:R) := forall x:R, E x -> x <= m.