(************************************************************************)
(*         *   The Coq Proof Assistant / The Coq Development Team       *)
(*  v      *   INRIA, CNRS and contributors - Copyright 1999-2018       *)
(* <O___,, *       (see CREDITS file for the list of authors)           *)
(*   \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)         *)
(************************************************************************)
(*********************************************************)
(**    Axiomatisation of the classical reals             *)
(*********************************************************)
Require Export ZArith_base.
Require Export Rdefinitions.
Declare Scope R_scope.
Local Open Scope R_scope.
(*********************************************************)
(** *            Field axioms                            *)
(*********************************************************)
(*********************************************************)
(** **   Addition                                        *)
(*********************************************************)
Hint Resolve Rplus_comm: real.
Hint Resolve Rplus_assoc: real.
Hint Resolve Rplus_opp_r: real.
Hint Resolve Rplus_0_l: real.
(***********************************************************)
(** **    Multiplication                                   *)
(***********************************************************)
Hint Resolve Rmult_comm: real.
Hint Resolve Rmult_assoc: real.
Hint Resolve Rinv_l: real.
Hint Resolve Rmult_1_l: real.
Hint Resolve R1_neq_R0: real.
(*********************************************************)
(** **   Distributivity                                  *)
(*********************************************************)
(**********)
Axiom
Rmult_plus_distr_l : forall r1 r2 r3:R, r1 * (r2 + r3) = r1 * r2 + r1 * r3.
Hint Resolve Rmult_plus_distr_l: real.
(*********************************************************)
(** *    Order axioms                                    *)
(*********************************************************)
(*********************************************************)
(** **   Total Order                                     *)
(*********************************************************)

(**********)
Axiom total_order_T : forall r1 r2:R, {r1 < r2} + {r1 = r2} + {r1 > r2}.