equal
deleted
inserted
replaced
62 Zero_nat_def: "0 == Abs_Nat Zero_Rep" |
62 Zero_nat_def: "0 == Abs_Nat Zero_Rep" |
63 One_nat_def [simp]: "1 == Suc 0" |
63 One_nat_def [simp]: "1 == Suc 0" |
64 less_def: "m < n == (m, n) : pred_nat^+" |
64 less_def: "m < n == (m, n) : pred_nat^+" |
65 le_def: "m \<le> (n::nat) == ~ (n < m)" .. |
65 le_def: "m \<le> (n::nat) == ~ (n < m)" .. |
66 |
66 |
67 lemmas [code nofunc] = less_def le_def |
67 lemmas [code func del] = less_def le_def |
68 |
68 |
69 text {* Induction *} |
69 text {* Induction *} |
70 |
70 |
71 lemma Rep_Nat': "Nat (Rep_Nat x)" |
71 lemma Rep_Nat': "Nat (Rep_Nat x)" |
72 by (rule Rep_Nat [simplified mem_Collect_eq]) |
72 by (rule Rep_Nat [simplified mem_Collect_eq]) |
1097 "(n\<Colon>nat) < Suc m \<longleftrightarrow> n \<le> m" |
1097 "(n\<Colon>nat) < Suc m \<longleftrightarrow> n \<le> m" |
1098 using Suc_le_eq less_Suc_eq_le by simp_all |
1098 using Suc_le_eq less_Suc_eq_le by simp_all |
1099 |
1099 |
1100 |
1100 |
1101 subsection {* Further Arithmetic Facts Concerning the Natural Numbers *} |
1101 subsection {* Further Arithmetic Facts Concerning the Natural Numbers *} |
|
1102 |
|
1103 lemma subst_equals: |
|
1104 assumes 1: "t = s" and 2: "u = t" |
|
1105 shows "u = s" |
|
1106 using 2 1 by (rule trans) |
1102 |
1107 |
1103 use "arith_data.ML" |
1108 use "arith_data.ML" |
1104 setup arith_setup |
1109 setup arith_setup |
1105 |
1110 |
1106 text{*The following proofs may rely on the arithmetic proof procedures.*} |
1111 text{*The following proofs may rely on the arithmetic proof procedures.*} |