diff options
| author | herbelin | 2001-08-05 19:04:16 +0000 |
|---|---|---|
| committer | herbelin | 2001-08-05 19:04:16 +0000 |
| commit | 83c56744d7e232abeb5f23e6d0f23cd0abc14a9c (patch) | |
| tree | 6d7d4c2ce3bb159b8f81a4193abde1e3573c28d4 /theories/Arith | |
| parent | f7351ff222bad0cc906dbee3c06b20babf920100 (diff) | |
Expérimentation de NewDestruct et parfois NewInduction
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1880 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/Arith')
| -rwxr-xr-x | theories/Arith/Between.v | 58 | ||||
| -rwxr-xr-x | theories/Arith/Compare.v | 2 | ||||
| -rwxr-xr-x | theories/Arith/Compare_dec.v | 14 | ||||
| -rw-r--r-- | theories/Arith/Div2.v | 4 | ||||
| -rwxr-xr-x | theories/Arith/EqNat.v | 18 | ||||
| -rw-r--r-- | theories/Arith/Even.v | 12 | ||||
| -rwxr-xr-x | theories/Arith/Le.v | 14 | ||||
| -rwxr-xr-x | theories/Arith/Lt.v | 24 | ||||
| -rwxr-xr-x | theories/Arith/Min.v | 12 | ||||
| -rwxr-xr-x | theories/Arith/Minus.v | 10 | ||||
| -rwxr-xr-x | theories/Arith/Mult.v | 14 | ||||
| -rwxr-xr-x | theories/Arith/Peano_dec.v | 10 | ||||
| -rwxr-xr-x | theories/Arith/Plus.v | 20 | ||||
| -rwxr-xr-x | theories/Arith/Wf_nat.v | 18 |
14 files changed, 115 insertions, 115 deletions
diff --git a/theories/Arith/Between.v b/theories/Arith/Between.v index ab22eca22c..e6b4446017 100755 --- a/theories/Arith/Between.v +++ b/theories/Arith/Between.v @@ -22,29 +22,29 @@ Hint constr_between : arith v62 := Constructors between. Lemma bet_eq : (k,l:nat)(l=k)->(between k l). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Hints Resolve bet_eq : arith v62. Lemma between_le : (k,l:nat)(between k l)->(le k l). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Hints Immediate between_le : arith v62. Lemma between_Sk_l : (k,l:nat)(between k l)->(le (S k) l)->(between (S k) l). Proof. -Induction 1. +NewInduction 1. Intros; Absurd (le (S k) k); Auto with arith. -Induction 1; Auto with arith. +Induction H; Auto with arith. Qed. Hints Resolve between_Sk_l : arith v62. Lemma between_restr : (k,l,m:nat)(le k l)->(le l m)->(between k m)->(between l m). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Inductive exists [k:nat] : nat -> Prop @@ -55,7 +55,7 @@ Hint constr_exists : arith v62 := Constructors exists. Lemma exists_le_S : (k,l:nat)(exists k l)->(le (S k) l). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Lemma exists_lt : (k,l:nat)(exists k l)->(lt k l). @@ -78,55 +78,55 @@ Hints Resolve in_int_intro : arith v62. Lemma in_int_lt : (p,q,r:nat)(in_int p q r)->(lt p q). Proof. -Induction 1; Intros. +NewInduction 1; Intros. Apply le_lt_trans with r; Auto with arith. Qed. Lemma in_int_p_Sq : (p,q,r:nat)(in_int p (S q) r)->((in_int p q r) \/ <nat>r=q). Proof. -Induction 1; Intros. +NewInduction 1; Intros. Elim (le_lt_or_eq r q); Auto with arith. Qed. Lemma in_int_S : (p,q,r:nat)(in_int p q r)->(in_int p (S q) r). Proof. -Induction 1;Auto with arith. +NewInduction 1;Auto with arith. Qed. Hints Resolve in_int_S : arith v62. Lemma in_int_Sp_q : (p,q,r:nat)(in_int (S p) q r)->(in_int p q r). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Hints Immediate in_int_Sp_q : arith v62. Lemma between_in_int : (k,l:nat)(between k l)->(r:nat)(in_int k l r)->(P r). Proof. -Induction 1; Intros. +NewInduction 1; Intros. Absurd (lt k k); Auto with arith. Apply in_int_lt with r; Auto with arith. -Elim (in_int_p_Sq k l0 r); Intros; Auto with arith. -Rewrite H4; Trivial with arith. +Elim (in_int_p_Sq k l r); Intros; Auto with arith. +Rewrite H2; Trivial with arith. Qed. Lemma in_int_between : (k,l:nat)(le k l)->((r:nat)(in_int k l r)->(P r))->(between k l). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Lemma exists_in_int : (k,l:nat)(exists k l)->(EX m:nat | (in_int k l m) & (Q m)). Proof. -Induction 1. -Induction 2; Intros p inp Qp; Exists p; Auto with arith. -Intros; Exists l0; Auto with arith. +NewInduction 1. +Case IHexists; Intros p inp Qp; Exists p; Auto with arith. +Exists l; Auto with arith. Qed. Lemma in_int_exists : (k,l,r:nat)(in_int k l r)->(Q r)->(exists k l). Proof. -Induction 1; Intros. +NewInduction 1; Intros. Elim H1; Auto with arith. Qed. @@ -134,23 +134,23 @@ Lemma between_or_exists : (k,l:nat)(le k l)->((n:nat)(in_int k l n)->((P n)\/(Q n))) ->((between k l)\/(exists k l)). Proof. -Induction 1; Intros; Auto with arith. -Elim H1; Intro; Auto with arith. -Elim (H2 m); Auto with arith. +NewInduction 1; Intros; Auto with arith. +Elim IHle; Intro; Auto with arith. +Elim (H0 m); Auto with arith. Qed. Lemma between_not_exists : (k,l:nat)(between k l)-> ((n:nat)(in_int k l n) -> (P n) -> ~(Q n)) -> ~(exists k l). Proof. -Induction 1; Red; Intros. +NewInduction 1; Red; Intros. Absurd (lt k k); Auto with arith. -Absurd (Q l0); Auto with arith. -Elim (exists_in_int k (S l0)); Auto with arith; Intros l' inl' Ql'. -Replace l0 with l'; Auto with arith. +Absurd (Q l); Auto with arith. +Elim (exists_in_int k (S l)); Auto with arith; Intros l' inl' Ql'. +Replace l with l'; Auto with arith. Elim inl'; Intros. -Elim (le_lt_or_eq l' l0); Auto with arith; Intros. -Absurd (exists k l0); Auto with arith. +Elim (le_lt_or_eq l' l); Auto with arith; Intros. +Absurd (exists k l); Auto with arith. Apply in_int_exists with l'; Auto with arith. Qed. @@ -161,7 +161,7 @@ Inductive nth [init:nat] : nat->nat->Prop Lemma nth_le : (init,l,n:nat)(nth init l n)->(le init l). Proof. -Induction 1; Intros; Auto with arith. +NewInduction 1; Intros; Auto with arith. Apply le_trans with (S k); Auto with arith. Qed. @@ -169,7 +169,7 @@ Definition eventually := [n:nat](EX k:nat | (le k n) & (Q k)). Lemma event_O : (eventually O)->(Q O). Proof. -Induction 1; Intros. +NewInduction 1; Intros. Replace O with x; Auto with arith. Qed. diff --git a/theories/Arith/Compare.v b/theories/Arith/Compare.v index 172ccf568a..cc4399d2f9 100755 --- a/theories/Arith/Compare.v +++ b/theories/Arith/Compare.v @@ -43,7 +43,7 @@ Proof. Intros m n H. LApply (lt_le_S m n); Auto with arith. Intro H'; LApply (le_lt_or_eq (S m) n); Auto with arith. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Right; Exists (minus n (S (S m))); Simpl. Rewrite (plus_sym m (minus n (S (S m)))). Rewrite (plus_n_Sm (minus n (S (S m))) m). diff --git a/theories/Arith/Compare_dec.v b/theories/Arith/Compare_dec.v index 1397326b24..531e0a9754 100755 --- a/theories/Arith/Compare_dec.v +++ b/theories/Arith/Compare_dec.v @@ -14,14 +14,14 @@ Require Gt. Require Decidable. Theorem zerop : (n:nat){n=O}+{lt O n}. -Destruct n; Auto with arith. +NewDestruct n; Auto with arith. Save. Theorem lt_eq_lt_dec : (n,m:nat){(lt n m)}+{n=m}+{(lt m n)}. Proof. -Induction n; Induction m; Auto with arith. -Intros q H'; Elim (H q). -Induction 1; Auto with arith. +NewInduction n; NewInduction m; Auto with arith. +Elim (IHn m). +NewInduction 1; Auto with arith. Auto with arith. Qed. @@ -30,11 +30,11 @@ Proof lt_eq_lt_dec. Lemma le_lt_dec : (n,m:nat) {le n m} + {lt m n}. Proof. -Induction n. +NewInduction n. Auto with arith. -Induction m. +NewInduction m. Auto with arith. -Intros q H'; Elim (H q); Auto with arith. +Elim (IHn m); Auto with arith. Qed. Lemma le_le_S_dec : (n,m:nat) {le n m} + {le (S m) n}. diff --git a/theories/Arith/Div2.v b/theories/Arith/Div2.v index 60fdc68ff6..2a087a06df 100644 --- a/theories/Arith/Div2.v +++ b/theories/Arith/Div2.v @@ -32,8 +32,8 @@ Intros. Cut (n:nat)(P n)/\(P (S n)). Intros. Elim (H2 n). Auto with arith. -Induction n0. Auto with arith. -Intros. Elim H2; Auto with arith. +NewInduction n0. Auto with arith. +Intros. Elim IHn0; Auto with arith. Qed. (* 0 <n => n/2 < n *) diff --git a/theories/Arith/EqNat.v b/theories/Arith/EqNat.v index 8392f17cec..d0bd9afc6e 100755 --- a/theories/Arith/EqNat.v +++ b/theories/Arith/EqNat.v @@ -21,17 +21,17 @@ Fixpoint eq_nat [n:nat] : nat -> Prop := end. Theorem eq_nat_refl : (n:nat)(eq_nat n n). -Induction n; Simpl; Auto. +NewInduction n; Simpl; Auto. Qed. Hints Resolve eq_nat_refl : arith v62. Theorem eq_eq_nat : (n,m:nat)(n=m)->(eq_nat n m). -Induction 1; Trivial with arith. +NewInduction 1; Trivial with arith. Qed. Hints Immediate eq_eq_nat : arith v62. Theorem eq_nat_eq : (n,m:nat)(eq_nat n m)->(n=m). -Induction n; Induction m; Simpl; Contradiction Orelse Auto with arith. +NewInduction n; NewInduction m; Simpl; Contradiction Orelse Auto with arith. Qed. Hints Immediate eq_nat_eq : arith v62. @@ -40,15 +40,15 @@ Intros; Replace m with n; Auto with arith. Qed. Theorem eq_nat_decide : (n,m:nat){(eq_nat n m)}+{~(eq_nat n m)}. -Induction n. -Destruct m. +NewInduction n. +NewDestruct m. Auto with arith. -Intro; Right; Red; Trivial with arith. -Destruct m. +Intros; Right; Red; Trivial with arith. +NewDestruct m. Right; Red; Auto with arith. Intros. Simpl. -Apply H. +Apply IHn. Defined. Fixpoint beq_nat [n:nat] : nat -> bool := @@ -61,7 +61,7 @@ Fixpoint beq_nat [n:nat] : nat -> bool := Lemma beq_nat_refl : (x:nat)true=(beq_nat x x). Proof. - Induction x; Simpl; Auto. + NewInduction x; Simpl; Auto. Qed. Definition beq_nat_eq : (x,y:nat)true=(beq_nat x y)->x=y. diff --git a/theories/Arith/Even.v b/theories/Arith/Even.v index bf73ecb0a7..0f1ab85596 100644 --- a/theories/Arith/Even.v +++ b/theories/Arith/Even.v @@ -24,22 +24,22 @@ Hint constr_odd : arith := Constructors odd. Lemma even_or_odd : (n:nat) (even n)\/(odd n). Proof. -Induction n. +NewInduction n. Auto with arith. -Intros n' H. Elim H; Auto with arith. +Elim IHn; Auto with arith. Save. Lemma even_odd_dec : (n:nat) { (even n) }+{ (odd n) }. Proof. -Induction n. +NewInduction n. Auto with arith. -Intros n' H. Elim H; Auto with arith. +Elim IHn; Auto with arith. Save. Lemma not_even_and_odd : (n:nat) (even n) -> (odd n) -> False. Proof. -Induction n. +NewInduction n. Intros. Inversion H0. -Intros. Inversion H0. Inversion H1. Auto with arith. +Intros. Inversion H. Inversion H0. Auto with arith. Save. diff --git a/theories/Arith/Le.v b/theories/Arith/Le.v index be420c6721..db4494fdf5 100755 --- a/theories/Arith/Le.v +++ b/theories/Arith/Le.v @@ -14,12 +14,12 @@ Theorem le_n_S : (n,m:nat)(le n m)->(le (S n) (S m)). Proof. - Induction 1; Auto. + NewInduction 1; Auto. Qed. Theorem le_trans : (n,m,p:nat)(le n m)->(le m p)->(le n p). Proof. - Induction 2; Auto. + NewInduction 2; Auto. Qed. Theorem le_n_Sn : (n:nat)(le n (S n)). @@ -29,14 +29,14 @@ Qed. Theorem le_O_n : (n:nat)(le O n). Proof. - Induction n ; Auto. + NewInduction n ; Auto. Qed. Hints Resolve le_n_S le_n_Sn le_O_n le_n_S le_trans : arith v62. Theorem le_pred_n : (n:nat)(le (pred n) n). Proof. -Induction n ; Auto with arith. +NewInduction n ; Auto with arith. Qed. Hints Resolve le_pred_n : arith v62. @@ -73,7 +73,7 @@ Hints Resolve le_Sn_O : arith v62. Theorem le_Sn_n : (n:nat)~(le (S n) n). Proof. -Induction n; Auto with arith. +NewInduction n; Auto with arith. Qed. Hints Resolve le_Sn_n : arith v62. @@ -110,7 +110,7 @@ Lemma le_elim_rel : (P:nat->nat->Prop) ((p,q:nat)(le p q)->(P p q)->(P (S p) (S q)))-> (n,m:nat)(le n m)->(P n m). Proof. -Induction n; Auto with arith. -Intros n' HRec m Le. +NewInduction n; Auto with arith. +Intros m Le. Elim Le; Auto with arith. Qed. diff --git a/theories/Arith/Lt.v b/theories/Arith/Lt.v index 7856850934..7b5e089c3a 100755 --- a/theories/Arith/Lt.v +++ b/theories/Arith/Lt.v @@ -50,17 +50,17 @@ Hints Resolve lt_n_n : arith v62. Lemma S_pred : (n,m:nat)(lt m n)->(n=(S (pred n))). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Lemma lt_pred : (n,p:nat)(lt (S n) p)->(lt n (pred p)). Proof. -Induction 1; Simpl; Auto with arith. +NewInduction 1; Simpl; Auto with arith. Qed. Hints Immediate lt_pred : arith v62. Lemma lt_pred_n_n : (n:nat)(lt O n)->(lt (pred n) n). -Destruct 1; Simpl; Auto with arith. +NewDestruct 1; Simpl; Auto with arith. Save. Hints Resolve lt_pred_n_n : arith v62. @@ -92,14 +92,14 @@ Hints Immediate lt_le_weak : arith v62. Theorem neq_O_lt : (n:nat)(~O=n)->(lt O n). Proof. -Induction n; Auto with arith. +NewInduction n; Auto with arith. Intros; Absurd O=O; Trivial with arith. Qed. Hints Immediate neq_O_lt : arith v62. Theorem lt_O_neq : (n:nat)(lt O n)->(~O=n). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Hints Immediate lt_O_neq : arith v62. @@ -107,35 +107,35 @@ Hints Immediate lt_O_neq : arith v62. Theorem lt_trans : (n,m,p:nat)(lt n m)->(lt m p)->(lt n p). Proof. -Induction 2; Auto with arith. +NewInduction 2; Auto with arith. Qed. Theorem lt_le_trans : (n,m,p:nat)(lt n m)->(le m p)->(lt n p). Proof. -Induction 2; Auto with arith. +NewInduction 2; Auto with arith. Qed. Theorem le_lt_trans : (n,m,p:nat)(le n m)->(lt m p)->(lt n p). Proof. -Induction 2; Auto with arith. +NewInduction 2; Auto with arith. Qed. Hints Resolve lt_trans lt_le_trans le_lt_trans : arith v62. Theorem le_lt_or_eq : (n,m:nat)(le n m)->((lt n m) \/ n=m). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Theorem le_or_lt : (n,m:nat)((le n m)\/(lt m n)). Proof. Intros n m; Pattern n m; Apply nat_double_ind; Auto with arith. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Theorem le_not_lt : (n,m:nat)(le n m) -> ~(lt m n). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Theorem lt_not_le : (n,m:nat)(lt n m) -> ~(le m n). @@ -146,7 +146,7 @@ Hints Immediate le_not_lt lt_not_le : arith v62. Theorem lt_not_sym : (n,m:nat)(lt n m) -> ~(lt m n). Proof. -Induction 1; Auto with arith. +NewInduction 1; Auto with arith. Qed. Theorem nat_total_order: (m,n: nat) ~ m = n -> (lt m n) \/ (lt n m). diff --git a/theories/Arith/Min.v b/theories/Arith/Min.v index bc976fbd25..a38329c347 100755 --- a/theories/Arith/Min.v +++ b/theories/Arith/Min.v @@ -28,15 +28,15 @@ Qed. Lemma le_min_l : (n,m:nat)(le (min n m) n). Proof. -Induction n; Intros; Simpl; Auto with arith. +NewInduction n; Intros; Simpl; Auto with arith. Elim m; Intros; Simpl; Auto with arith. Qed. Hints Resolve le_min_l : arith v62. Lemma le_min_r : (n,m:nat)(le (min n m) m). Proof. -Induction n; Simpl; Auto with arith. -Induction m; Simpl; Auto with arith. +NewInduction n; Simpl; Auto with arith. +NewInduction m; Simpl; Auto with arith. Qed. Hints Resolve le_min_r : arith v62. @@ -44,7 +44,7 @@ Hints Resolve le_min_r : arith v62. Lemma min_case : (n,m:nat)(P:nat->Set)(P n)->(P m)->(P (min n m)). Proof. -Induction n; Simpl; Auto with arith. -Induction m; Intros; Simpl; Auto with arith. -Pattern (min n0 n1); Apply H ; Auto with arith. +NewInduction n; Simpl; Auto with arith. +NewInduction m; Intros; Simpl; Auto with arith. +Pattern (min n m); Apply IHn ; Auto with arith. Qed. diff --git a/theories/Arith/Minus.v b/theories/Arith/Minus.v index 3da5916e04..f3f67dea35 100755 --- a/theories/Arith/Minus.v +++ b/theories/Arith/Minus.v @@ -27,19 +27,19 @@ Fixpoint minus [n:nat] : nat -> nat := Lemma minus_plus_simpl : (n,m,p:nat)((minus n m)=(minus (plus p n) (plus p m))). Proof. - Induction p; Simpl; Auto with arith. + NewInduction p; Simpl; Auto with arith. Qed. Hints Resolve minus_plus_simpl : arith v62. Lemma minus_n_O : (n:nat)(n=(minus n O)). Proof. -Induction n; Simpl; Auto with arith. +NewInduction n; Simpl; Auto with arith. Qed. Hints Resolve minus_n_O : arith v62. Lemma minus_n_n : (n:nat)(O=(minus n n)). Proof. -Induction n; Simpl; Auto with arith. +NewInduction n; Simpl; Auto with arith. Qed. Hints Resolve minus_n_n : arith v62. @@ -84,7 +84,7 @@ Intros; Absurd (lt O O); Auto with arith. Intros p q lepq Hp gtp. Elim (le_lt_or_eq O p); Auto with arith. Auto with arith. -Induction 1; Elim minus_n_O; Auto with arith. +NewInduction 1; Elim minus_n_O; Auto with arith. Qed. Hints Resolve lt_minus : arith v62. @@ -96,7 +96,7 @@ Qed. Hints Immediate lt_O_minus_lt : arith v62. Theorem pred_of_minus : (x:nat)(pred x)=(minus x (S O)). -Induction x; Auto with arith. +NewInduction x; Auto with arith. Save. diff --git a/theories/Arith/Mult.v b/theories/Arith/Mult.v index 8955b1ea31..86404aca3f 100755 --- a/theories/Arith/Mult.v +++ b/theories/Arith/Mult.v @@ -26,8 +26,8 @@ Hints Resolve mult_plus_distr : arith v62. Lemma mult_plus_distr_r : (n,m,p:nat) (mult n (plus m p))=(plus (mult n m) (mult n p)). Proof. - Induction n. Trivial. - Intros. Simpl. Rewrite (H m p). Apply sym_eq. Apply plus_permute_2_in_4. + NewInduction n. Trivial. + Intros. Simpl. Rewrite (IHn m p). Apply sym_eq. Apply plus_permute_2_in_4. Qed. Lemma mult_minus_distr : (n,m,p:nat)((mult (minus n m) p)=(minus (mult n p) (mult m p))). @@ -39,7 +39,7 @@ Hints Resolve mult_minus_distr : arith v62. Lemma mult_O_le : (n,m:nat)(m=O)\/(le n (mult m n)). Proof. -Induction m; Simpl; Auto with arith. +NewInduction m; Simpl; Auto with arith. Qed. Hints Resolve mult_O_le : arith v62. @@ -76,16 +76,16 @@ Hints Resolve mult_n_1 : arith v62. Lemma mult_le : (m,n,p:nat) (le n p) -> (le (mult m n) (mult m p)). Proof. - Induction m. Intros. Simpl. Apply le_n. + NewInduction m. Intros. Simpl. Apply le_n. Intros. Simpl. Apply le_plus_plus. Assumption. - Apply H. Assumption. + Apply IHm. Assumption. Qed. Hints Resolve mult_le : arith. Lemma mult_lt : (m,n,p:nat) (lt n p) -> (lt (mult (S m) n) (mult (S m) p)). Proof. - Induction m. Intros. Simpl. Rewrite <- plus_n_O. Rewrite <- plus_n_O. Assumption. - Intros. Exact (lt_plus_plus ? ? ? ? H0 (H ? ? H0)). + NewInduction m. Intros. Simpl. Rewrite <- plus_n_O. Rewrite <- plus_n_O. Assumption. + Intros. Exact (lt_plus_plus ? ? ? ? H (IHm ? ? H)). Qed. Hints Resolve mult_lt : arith. diff --git a/theories/Arith/Peano_dec.v b/theories/Arith/Peano_dec.v index b02d5a324c..d847a060d8 100755 --- a/theories/Arith/Peano_dec.v +++ b/theories/Arith/Peano_dec.v @@ -12,20 +12,20 @@ Require Decidable. Theorem O_or_S : (n:nat)({m:nat|(S m)=n})+{O=n}. Proof. -Induction n. +NewInduction n. Auto. -Intros p H; Left; Exists p; Auto. +Left; Exists n; Auto. Qed. Theorem eq_nat_dec : (n,m:nat){n=m}+{~(n=m)}. Proof. -Induction n; Induction m; Auto. -Intros q H'; Elim (H q); Auto. +NewInduction n; NewInduction m; Auto. +Elim (IHn m); Auto. Qed. Hints Resolve O_or_S eq_nat_dec : arith. Theorem dec_eq_nat:(x,y:nat)(decidable (x=y)). Intros x y; Unfold decidable; Elim (eq_nat_dec x y); Auto with arith. -Save. +Qed. diff --git a/theories/Arith/Plus.v b/theories/Arith/Plus.v index 1b70e1512b..69bbd975a8 100755 --- a/theories/Arith/Plus.v +++ b/theories/Arith/Plus.v @@ -32,7 +32,7 @@ Qed. Lemma simpl_plus_l : (n,m,p:nat)((plus n m)=(plus n p))->(m=p). Proof. -Induction n ; Simpl ; Auto with arith. +NewInduction n ; Simpl ; Auto with arith. Qed. Lemma plus_assoc_l : (n,m,p:nat)((plus n (plus m p))=(plus (plus n m) p)). @@ -54,18 +54,18 @@ Hints Resolve plus_assoc_r : arith v62. Lemma simpl_le_plus_l : (p,n,m:nat)(le (plus p n) (plus p m))->(le n m). Proof. -Induction p; Simpl; Auto with arith. +NewInduction p; Simpl; Auto with arith. Qed. Lemma le_reg_l : (n,m,p:nat)(le n m)->(le (plus p n) (plus p m)). Proof. -Induction p; Simpl; Auto with arith. +NewInduction p; Simpl; Auto with arith. Qed. Hints Resolve le_reg_l : arith v62. Lemma le_reg_r : (a,b,c:nat) (le a b)->(le (plus a c) (plus b c)). Proof. -Induction 1 ; Simpl; Auto with arith. +NewInduction 1 ; Simpl; Auto with arith. Qed. Hints Resolve le_reg_r : arith v62. @@ -78,7 +78,7 @@ Qed. Lemma le_plus_l : (n,m:nat)(le n (plus n m)). Proof. -Induction n; Simpl; Auto with arith. +NewInduction n; Simpl; Auto with arith. Qed. Hints Resolve le_plus_l : arith v62. @@ -96,12 +96,12 @@ Hints Resolve le_plus_trans : arith v62. Lemma simpl_lt_plus_l : (n,m,p:nat)(lt (plus p n) (plus p m))->(lt n m). Proof. -Induction p; Simpl; Auto with arith. +NewInduction p; Simpl; Auto with arith. Qed. Lemma lt_reg_l : (n,m,p:nat)(lt n m)->(lt (plus p n) (plus p m)). Proof. -Induction p; Simpl; Auto with arith. +NewInduction p; Simpl; Auto with arith. Qed. Hints Resolve lt_reg_l : arith v62. @@ -138,15 +138,15 @@ Qed. Lemma plus_is_O : (m,n:nat) (plus m n)=O -> m=O /\ n=O. Proof. - Destruct m; Auto. + NewDestruct m; Auto. Intros. Discriminate H. Qed. Lemma plus_is_one : (m,n:nat) (plus m n)=(S O) -> {m=O /\ n=(S O)}+{m=(S O) /\ n=O}. Proof. - Destruct m; Auto. - Destruct n; Auto. + NewDestruct m; Auto. + NewDestruct n; Auto. Intros. Simpl in H. Discriminate H. Qed. diff --git a/theories/Arith/Wf_nat.v b/theories/Arith/Wf_nat.v index ff502af946..f34c97d23f 100755 --- a/theories/Arith/Wf_nat.v +++ b/theories/Arith/Wf_nat.v @@ -25,12 +25,12 @@ Proof. Red. Cut (n:nat)(a:A)(lt (f a) n)->(Acc A ltof a). Intros H a; Apply (H (S (f a))); Auto with arith. -Induction n. +NewInduction n. Intros; Absurd (lt (f a) O); Auto with arith. -Intros m Hm a ltSma. +Intros a ltSma. Apply Acc_intro. Unfold ltof; Intros b ltfafb. -Apply Hm. +Apply IHn. Apply lt_le_trans with (f a); Auto with arith. Qed. @@ -60,12 +60,12 @@ Theorem induction_ltof1 Proof. Intros P F; Cut (n:nat)(a:A)(lt (f a) n)->(P a). Intros H a; Apply (H (S (f a))); Auto with arith. -Induction n. +NewInduction n. Intros; Absurd (lt (f a) O); Auto with arith. -Intros m Hm a ltSma. +Intros a ltSma. Apply F. Unfold ltof; Intros b ltfafb. -Apply Hm. +Apply IHn. Apply lt_le_trans with (f a); Auto with arith. Qed. @@ -94,12 +94,12 @@ Proof. Red. Cut (n:nat)(a:A)(lt (f a) n)->(Acc A R a). Intros H a; Apply (H (S (f a))); Auto with arith. -Induction n. +NewInduction n. Intros; Absurd (lt (f a) O); Auto with arith. -Intros m Hm a ltSma. +Intros a ltSma. Apply Acc_intro. Intros b ltfafb. -Apply Hm. +Apply IHn. Apply lt_le_trans with (f a); Auto with arith. Save. |
