(************************************************************************)
(*         *      The Rocq Prover / The Rocq Development Team           *)
(*  v      *         Copyright INRIA, CNRS and contributors             *)
(* <O___,, * (see version control and CREDITS file for authors & dates) *)
(*   \VV/  **************************************************************)
(*    //   *    This file is distributed under the terms of the         *)
(*         *     GNU Lesser General Public License Version 2.1          *)
(*         *     (see LICENSE file for the text of the license)         *)
(************************************************************************)
(* This file continues Rdefinitions, with more properties of the classical reals, including the existence of least upper bounds for non-empty and bounded subsets. The name "Raxioms" and its contents are kept for backward compatibility, when the classical reals were axiomatized. Otherwise we would have merged this file into RIneq. *)
(*********************************************************)
(**    Lifts of basic operations for classical reals     *)
(*********************************************************)
Require Export ZArith_base.
Require Export Rdefinitions.
Local Open Scope R_scope.
(*********************************************************)
(** *            Field operations                        *)
(*********************************************************)
(*********************************************************)
(** **   Addition                                        *)
(*********************************************************)
Open Scope CReal_scope.

(* Specifications: *)
Lemma Rrepr_0 : Rrepr 0 == 0.
Lemma Rrepr_1 : Rrepr 1 == 1.
Lemma Rrepr_plus : forall x y:R, Rrepr (x + y) == Rrepr x + Rrepr y.
Lemma Rrepr_opp : forall x:R, Rrepr (- x) == - Rrepr x.
Lemma Rrepr_minus : forall x y:R, Rrepr (x - y) == Rrepr x - Rrepr y.
Lemma Rrepr_mult : forall x y:R, Rrepr (x * y) == Rrepr x * Rrepr y.
Lemma Rrepr_inv : forall (x:R) (xnz : Rrepr x # 0),
Rrepr (/ x) == (/ Rrepr x) xnz.
Lemma Rrepr_le : forall x y:R, (x <= y)%R <-> Rrepr x <= Rrepr y.
Lemma Rrepr_appart : forall x y:R,
(x <> y)%R -> Rrepr x # Rrepr y.
Lemma Rappart_repr : forall x y:R,
Rrepr x # Rrepr y -> (x <> y)%R.