aboutsummaryrefslogtreecommitdiffhomepage
path: root/theories/Numbers/Natural
diff options
context:
space:
mode:
authorGravatar emakarov <emakarov@85f007b7-540e-0410-9357-904b9bb8a0f7>2007-11-08 17:06:32 +0000
committerGravatar emakarov <emakarov@85f007b7-540e-0410-9357-904b9bb8a0f7>2007-11-08 17:06:32 +0000
commit8a51418e76da874843d6b58b6615dc12a82e2c0a (patch)
tree237cd1a934d3a24f1d954e7400e5a683476deb23 /theories/Numbers/Natural
parentc08b8247aec05b34a908663aa160fdbd617b8220 (diff)
Moved several lemmas from theories/Numbers/NumPrelude to theories/Init/Logic.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10304 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/Numbers/Natural')
-rw-r--r--theories/Numbers/Natural/Abstract/NBase.v4
-rw-r--r--theories/Numbers/Natural/Abstract/NMinus.v12
-rw-r--r--theories/Numbers/Natural/Abstract/NPlus.v6
3 files changed, 13 insertions, 9 deletions
diff --git a/theories/Numbers/Natural/Abstract/NBase.v b/theories/Numbers/Natural/Abstract/NBase.v
index 35d929f0c..d71f98057 100644
--- a/theories/Numbers/Natural/Abstract/NBase.v
+++ b/theories/Numbers/Natural/Abstract/NBase.v
@@ -163,7 +163,9 @@ Proof.
cases n.
rewrite pred_0. setoid_replace (0 == 1) with False using relation iff. tauto.
split; intro H; [symmetry in H; false_hyp H neq_succ_0 | elim H].
-intro n. rewrite pred_succ. rewrite_false (S n == 0) neq_succ_0.
+intro n. rewrite pred_succ.
+setoid_replace (S n == 0) with False using relation iff by
+ (apply -> neg_false; apply neq_succ_0).
rewrite succ_inj_wd. tauto.
Qed.
diff --git a/theories/Numbers/Natural/Abstract/NMinus.v b/theories/Numbers/Natural/Abstract/NMinus.v
index f7abb82d8..c109ff904 100644
--- a/theories/Numbers/Natural/Abstract/NMinus.v
+++ b/theories/Numbers/Natural/Abstract/NMinus.v
@@ -99,7 +99,7 @@ intros n m p H; rewrite plus_comm in H; now apply plus_minus_eq_l.
Qed.
(* This could be proved by adding m to both sides. Then the proof would
-use plus_minus_assoc and le_minus_0, which is proven below. *)
+use plus_minus_assoc and minus_0_le, which is proven below. *)
Theorem plus_minus_eq_nz : forall n m p : N, p ~= 0 -> n - m == p -> m + p == n.
Proof.
intros n m p H; double_induct n m.
@@ -134,12 +134,12 @@ intros m IH. rewrite minus_succ_r.
apply le_trans with (n - m); [apply le_pred_l | assumption].
Qed.
-Theorem le_minus_0 : forall n m : N, n <= m <-> n - m == 0.
+Theorem minus_0_le : forall n m : N, n - m == 0 <-> n <= m.
Proof.
double_induct n m.
-intro m; split; intro; [apply minus_0_l | apply le_0_l].
+intro m; split; intro; [apply le_0_l | apply minus_0_l].
intro m; rewrite minus_0_r; split; intro H;
-[false_hyp H nle_succ_0 | false_hyp H neq_succ_0].
+[false_hyp H neq_succ_0 | false_hyp H nle_succ_0].
intros n m H. rewrite <- succ_le_mono. now rewrite minus_succ.
Qed.
@@ -164,8 +164,8 @@ rewrite (plus_comm ((n - m) * p) p), (plus_comm (n * p) p).
rewrite <- (plus_minus_assoc p (n * p) (m * p)); [now apply times_le_mono_r |].
now apply <- plus_cancel_l.
assert (H1 : S n <= m); [now apply -> lt_le_succ |].
-setoid_replace (S n - m) with 0 by now apply -> le_minus_0.
-setoid_replace ((S n * p) - m * p) with 0 by (apply -> le_minus_0; now apply times_le_mono_r).
+setoid_replace (S n - m) with 0 by now apply <- minus_0_le.
+setoid_replace ((S n * p) - m * p) with 0 by (apply <- minus_0_le; now apply times_le_mono_r).
apply times_0_l.
Qed.
diff --git a/theories/Numbers/Natural/Abstract/NPlus.v b/theories/Numbers/Natural/Abstract/NPlus.v
index 32912a73d..a033d95a0 100644
--- a/theories/Numbers/Natural/Abstract/NPlus.v
+++ b/theories/Numbers/Natural/Abstract/NPlus.v
@@ -67,8 +67,10 @@ intros n m; induct n.
(* The next command does not work with the axiom plus_0_l from NPlusSig *)
rewrite plus_0_l. intuition reflexivity.
intros n IH. rewrite plus_succ_l.
-rewrite_false (S (n + m) == 0) neq_succ_0.
-rewrite_false (S n == 0) neq_succ_0. tauto.
+setoid_replace (S (n + m) == 0) with False using relation iff by
+ (apply -> neg_false; apply neq_succ_0).
+setoid_replace (S n == 0) with False using relation iff by
+ (apply -> neg_false; apply neq_succ_0). tauto.
Qed.
Theorem plus_eq_succ :