aboutsummaryrefslogtreecommitdiffhomepage
path: root/theories/Reals/RIneq.v
diff options
context:
space:
mode:
authorGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2006-09-28 17:51:39 +0000
committerGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2006-09-28 17:51:39 +0000
commit1040f4258593fa6de309acb2c93b76c41e914188 (patch)
treeaad91dcfecb0b764769de360ee1cb466d201196f /theories/Reals/RIneq.v
parent5865dad7bae73b13096a62e3657b02e13771524a (diff)
separation de RealField
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9187 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/Reals/RIneq.v')
-rw-r--r--theories/Reals/RIneq.v129
1 files changed, 27 insertions, 102 deletions
diff --git a/theories/Reals/RIneq.v b/theories/Reals/RIneq.v
index c6feb4ac6..ff3a975e0 100644
--- a/theories/Reals/RIneq.v
+++ b/theories/Reals/RIneq.v
@@ -15,7 +15,8 @@
Require Export Raxioms.
Require Export ZArithRing.
Require Import Omega.
-Require Export Field_tac. Import Field.
+Require Export RealField.
+Require Export LegacyField.
Open Local Scope Z_scope.
Open Local Scope R_scope.
@@ -23,109 +24,33 @@ Open Local Scope R_scope.
Implicit Type r : R.
(***************************************************************************)
-(** Instantiating Ring tactic on reals *)
+(** Instantiating Field tactic on reals *)
(***************************************************************************)
-Lemma RTheory : ring_theory 0 1 Rplus Rmult Rminus Ropp (eq (A:=R)).
-Proof.
-constructor.
- intro; apply Rplus_0_l.
- exact Rplus_comm.
- symmetry in |- *; apply Rplus_assoc.
- intro; apply Rmult_1_l.
- exact Rmult_comm.
- symmetry in |- *; apply Rmult_assoc.
- intros m n p.
- rewrite Rmult_comm in |- *.
- rewrite (Rmult_comm n p) in |- *.
- rewrite (Rmult_comm m p) in |- *.
- apply Rmult_plus_distr_l.
- reflexivity.
- exact Rplus_opp_r.
-Qed.
-
-Lemma Rfield :
- field_theory R 0 1 Rplus Rmult Rminus Ropp Rdiv Rinv (eq(A:=R)).
-Proof.
-constructor.
- exact RTheory.
- exact R1_neq_R0.
- reflexivity.
- exact Rinv_l.
-Qed.
-
-Lemma Rlt_n_Sn : forall x, x < x + 1.
-Proof.
-intro.
-elim archimed with x; intros.
-destruct H0.
- apply Rlt_trans with (IZR (up x)); trivial.
- replace (IZR (up x)) with (x + (IZR (up x) - x))%R.
- apply Rplus_lt_compat_l; trivial.
- unfold Rminus in |- *.
- rewrite (Rplus_comm (IZR (up x)) (- x)) in |- *.
- rewrite <- Rplus_assoc in |- *.
- rewrite Rplus_opp_r in |- *.
- apply Rplus_0_l.
- elim H0.
- unfold Rminus in |- *.
- rewrite (Rplus_comm (IZR (up x)) (- x)) in |- *.
- rewrite <- Rplus_assoc in |- *.
- rewrite Rplus_opp_r in |- *.
- rewrite Rplus_0_l in |- *; trivial.
-Qed.
-
-Notation Rset := (Eqsth R).
-Notation Rext := (Eq_ext Rplus Rmult Ropp).
-
-Lemma Rlt_0_2 : 0 < 2.
-apply Rlt_trans with (0 + 1).
- apply Rlt_n_Sn.
- rewrite Rplus_comm in |- *.
- apply Rplus_lt_compat_l.
- replace 1 with (0 + 1).
- apply Rlt_n_Sn.
- apply Rplus_0_l.
-Qed.
-
-Lemma Rgen_phiPOS : forall x, InitialRing.gen_phiPOS1 1 Rplus Rmult x > 0.
-unfold Rgt in |- *.
-induction x; simpl in |- *; intros.
- apply Rlt_trans with (1 + 0).
- rewrite Rplus_comm in |- *.
- apply Rlt_n_Sn.
- apply Rplus_lt_compat_l.
- rewrite <- (Rmul_0_l Rset Rext RTheory 2) in |- *.
- rewrite Rmult_comm in |- *.
- apply Rmult_lt_compat_l.
- apply Rlt_0_2.
- trivial.
- rewrite <- (Rmul_0_l Rset Rext RTheory 2) in |- *.
- rewrite Rmult_comm in |- *.
- apply Rmult_lt_compat_l.
- apply Rlt_0_2.
- trivial.
- replace 1 with (0 + 1).
- apply Rlt_n_Sn.
- apply Rplus_0_l.
-Qed.
-
-
-Lemma Rgen_phiPOS_not_0 :
- forall x, InitialRing.gen_phiPOS1 1 Rplus Rmult x <> 0.
-red in |- *; intros.
-specialize (Rgen_phiPOS x).
-rewrite H in |- *; intro.
-apply (Rlt_asym 0 0); trivial.
-Qed.
-
-Lemma Zeq_bool_complete : forall x y,
- InitialRing.gen_phiZ 0%R 1%R Rplus Rmult Ropp x =
- InitialRing.gen_phiZ 0%R 1%R Rplus Rmult Ropp y ->
- Zeq_bool x y = true.
-Proof gen_phiZ_complete _ _ _ _ _ _ _ _ _ _ Rset Rext Rfield Rgen_phiPOS_not_0.
-
-Add Field RField : Rfield (infinite Zeq_bool_complete).
+(* Legacy Field *)
+Require Export LegacyField.
+Import LegacyRing_theory.
+
+Lemma RLegacyTheory : Ring_Theory Rplus Rmult 1 0 Ropp (fun x y:R => false).
+ split.
+ exact Rplus_comm.
+ symmetry in |- *; apply Rplus_assoc.
+ exact Rmult_comm.
+ symmetry in |- *; apply Rmult_assoc.
+ intro; apply Rplus_0_l.
+ intro; apply Rmult_1_l.
+ exact Rplus_opp_r.
+ intros.
+ rewrite Rmult_comm.
+ rewrite (Rmult_comm n p).
+ rewrite (Rmult_comm m p).
+ apply Rmult_plus_distr_l.
+ intros; contradiction.
+Defined.
+
+Add Legacy Field
+ R Rplus Rmult 1 0 Ropp (fun x y:R => false) Rinv RLegacyTheory Rinv_l
+ with minus := Rminus div := Rdiv.
(**************************************************************************)
(** Relation between orders and equality *)