summaryrefslogtreecommitdiff
path: root/theories7/Reals/Raxioms.v
diff options
context:
space:
mode:
Diffstat (limited to 'theories7/Reals/Raxioms.v')
-rw-r--r--theories7/Reals/Raxioms.v172
1 files changed, 172 insertions, 0 deletions
diff --git a/theories7/Reals/Raxioms.v b/theories7/Reals/Raxioms.v
new file mode 100644
index 00000000..caf8524c
--- /dev/null
+++ b/theories7/Reals/Raxioms.v
@@ -0,0 +1,172 @@
+(************************************************************************)
+(* v * The Coq Proof Assistant / The Coq Development Team *)
+(* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
+(* \VV/ **************************************************************)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(************************************************************************)
+
+(*i $Id: Raxioms.v,v 1.2.2.1 2004/07/16 19:31:33 herbelin Exp $ i*)
+
+(*********************************************************)
+(** Axiomatisation of the classical reals *)
+(*********************************************************)
+
+Require Export ZArith_base.
+V7only [
+Require Export Rsyntax.
+Import R_scope.
+].
+Open Local Scope R_scope.
+
+V7only [
+(*********************************************************)
+(* Compatibility *)
+(*********************************************************)
+Notation sumboolT := Specif.sumbool.
+Notation leftT := Specif.left.
+Notation rightT := Specif.right.
+Notation sumorT := Specif.sumor.
+Notation inleftT := Specif.inleft.
+Notation inrightT := Specif.inright.
+Notation sigTT := Specif.sigT.
+Notation existTT := Specif.existT.
+Notation SigT := Specif.sigT.
+].
+
+(*********************************************************)
+(* Field axioms *)
+(*********************************************************)
+
+(*********************************************************)
+(** Addition *)
+(*********************************************************)
+
+(**********)
+Axiom Rplus_sym:(r1,r2:R)``r1+r2==r2+r1``.
+Hints Resolve Rplus_sym : real.
+
+(**********)
+Axiom Rplus_assoc:(r1,r2,r3:R)``(r1+r2)+r3==r1+(r2+r3)``.
+Hints Resolve Rplus_assoc : real.
+
+(**********)
+Axiom Rplus_Ropp_r:(r:R)``r+(-r)==0``.
+Hints Resolve Rplus_Ropp_r : real v62.
+
+(**********)
+Axiom Rplus_Ol:(r:R)``0+r==r``.
+Hints Resolve Rplus_Ol : real.
+
+(***********************************************************)
+(** Multiplication *)
+(***********************************************************)
+
+(**********)
+Axiom Rmult_sym:(r1,r2:R)``r1*r2==r2*r1``.
+Hints Resolve Rmult_sym : real v62.
+
+(**********)
+Axiom Rmult_assoc:(r1,r2,r3:R)``(r1*r2)*r3==r1*(r2*r3)``.
+Hints Resolve Rmult_assoc : real v62.
+
+(**********)
+Axiom Rinv_l:(r:R)``r<>0``->``(/r)*r==1``.
+Hints Resolve Rinv_l : real.
+
+(**********)
+Axiom Rmult_1l:(r:R)``1*r==r``.
+Hints Resolve Rmult_1l : real.
+
+(**********)
+Axiom R1_neq_R0:``1<>0``.
+Hints Resolve R1_neq_R0 : real.
+
+(*********************************************************)
+(** Distributivity *)
+(*********************************************************)
+
+(**********)
+Axiom Rmult_Rplus_distr:(r1,r2,r3:R)``r1*(r2+r3)==(r1*r2)+(r1*r3)``.
+Hints Resolve Rmult_Rplus_distr : real v62.
+
+(*********************************************************)
+(** Order axioms *)
+(*********************************************************)
+(*********************************************************)
+(** Total Order *)
+(*********************************************************)
+
+(**********)
+Axiom total_order_T:(r1,r2:R)(sumorT (sumboolT ``r1<r2`` r1==r2) ``r1>r2``).
+
+(*********************************************************)
+(** Lower *)
+(*********************************************************)
+
+(**********)
+Axiom Rlt_antisym:(r1,r2:R)``r1<r2`` -> ~ ``r2<r1``.
+
+(**********)
+Axiom Rlt_trans:(r1,r2,r3:R)
+ ``r1<r2``->``r2<r3``->``r1<r3``.
+
+(**********)
+Axiom Rlt_compatibility:(r,r1,r2:R)``r1<r2``->``r+r1<r+r2``.
+
+(**********)
+Axiom Rlt_monotony:(r,r1,r2:R)``0<r``->``r1<r2``->``r*r1<r*r2``.
+
+Hints Resolve Rlt_antisym Rlt_compatibility Rlt_monotony : real.
+
+(**********************************************************)
+(** Injection from N to R *)
+(**********************************************************)
+
+(**********)
+Fixpoint INR [n:nat]:R:=(Cases n of
+ O => ``0``
+ |(S O) => ``1``
+ |(S n) => ``(INR n)+1``
+ end).
+Arguments Scope INR [nat_scope].
+
+
+(**********************************************************)
+(** Injection from [Z] to [R] *)
+(**********************************************************)
+
+(**********)
+Definition IZR:Z->R:=[z:Z](Cases z of
+ ZERO => ``0``
+ |(POS n) => (INR (convert n))
+ |(NEG n) => ``-(INR (convert n))``
+ end).
+Arguments Scope IZR [Z_scope].
+
+(**********************************************************)
+(** [R] Archimedian *)
+(**********************************************************)
+
+(**********)
+Axiom archimed:(r:R)``(IZR (up r)) > r``/\``(IZR (up r))-r <= 1``.
+
+(**********************************************************)
+(** [R] Complete *)
+(**********************************************************)
+
+(**********)
+Definition is_upper_bound:=[E:R->Prop][m:R](x:R)(E x)->``x <= m``.
+
+(**********)
+Definition bound:=[E:R->Prop](ExT [m:R](is_upper_bound E m)).
+
+(**********)
+Definition is_lub:=[E:R->Prop][m:R]
+ (is_upper_bound E m)/\(b:R)(is_upper_bound E b)->``m <= b``.
+
+(**********)
+Axiom complet:(E:R->Prop)(bound E)->
+ (ExT [x:R] (E x))->
+ (sigTT R [m:R](is_lub E m)).
+