--- a/Arith.ML Fri Nov 11 10:35:03 1994 +0100
+++ b/Arith.ML Mon Nov 21 17:50:34 1994 +0100
@@ -116,7 +116,7 @@
by (rtac (prem RS rev_mp) 1);
by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
by (ALLGOALS(asm_simp_tac arith_ss));
-val add_diff_inverse = result();
+qed "add_diff_inverse";
(*** Remainder ***)
@@ -125,7 +125,7 @@
by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
by (etac less_SucE 3);
by (ALLGOALS(asm_simp_tac arith_ss));
-val diff_less_Suc = result();
+qed "diff_less_Suc";
(*In ordinary notation: if 0<n and n<=m then m-n < m *)
goal Arith.thy "!!m. [| 0<n; ~ m<n |] ==> m - n < m";
@@ -133,23 +133,23 @@
by (fast_tac HOL_cs 1);
by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
by (ALLGOALS(asm_simp_tac(arith_ss addsimps [diff_less_Suc])));
-val div_termination = result();
+qed "div_termination";
val wf_less_trans = wf_pred_nat RS wf_trancl RSN (2, def_wfrec RS trans);
goalw Nat.thy [less_def] "<m,n> : pred_nat^+ = (m<n)";
by (rtac refl 1);
-val less_eq = result();
+qed "less_eq";
goal Arith.thy "!!m. m<n ==> m mod n = m";
by (rtac (mod_def RS wf_less_trans) 1);
by(asm_simp_tac HOL_ss 1);
-val mod_less = result();
+qed "mod_less";
goal Arith.thy "!!m. [| 0<n; ~m<n |] ==> m mod n = (m-n) mod n";
by (rtac (mod_def RS wf_less_trans) 1);
by(asm_simp_tac (nat_ss addsimps [div_termination, cut_apply, less_eq]) 1);
-val mod_geq = result();
+qed "mod_geq";
(*** Quotient ***)
@@ -157,12 +157,12 @@
goal Arith.thy "!!m. m<n ==> m div n = 0";
by (rtac (div_def RS wf_less_trans) 1);
by(asm_simp_tac nat_ss 1);
-val div_less = result();
+qed "div_less";
goal Arith.thy "!!M. [| 0<n; ~m<n |] ==> m div n = Suc((m-n) div n)";
by (rtac (div_def RS wf_less_trans) 1);
by(asm_simp_tac (nat_ss addsimps [div_termination, cut_apply, less_eq]) 1);
-val div_geq = result();
+qed "div_geq";
(*Main Result about quotient and remainder.*)
goal Arith.thy "!!m. 0<n ==> (m div n)*n + m mod n = m";
@@ -172,7 +172,7 @@
by (ALLGOALS (asm_simp_tac(arith_ss addsimps (add_ac @
[mod_less, mod_geq, div_less, div_geq,
add_diff_inverse, div_termination]))));
-val mod_div_equality = result();
+qed "mod_div_equality";
(*** More results about difference ***)
@@ -181,12 +181,12 @@
by (rtac (prem RS rev_mp) 1);
by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
by (ALLGOALS (asm_simp_tac arith_ss));
-val less_imp_diff_is_0 = result();
+qed "less_imp_diff_is_0";
val prems = goal Arith.thy "m-n = 0 --> n-m = 0 --> m=n";
by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
by (REPEAT(simp_tac arith_ss 1 THEN TRY(atac 1)));
-val diffs0_imp_equal_lemma = result();
+qed "diffs0_imp_equal_lemma";
(* [| m-n = 0; n-m = 0 |] ==> m=n *)
val diffs0_imp_equal = standard (diffs0_imp_equal_lemma RS mp RS mp);
@@ -195,29 +195,29 @@
by (rtac (prem RS rev_mp) 1);
by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
by (ALLGOALS(asm_simp_tac arith_ss));
-val less_imp_diff_positive = result();
+qed "less_imp_diff_positive";
val [prem] = goal Arith.thy "n < Suc(m) ==> Suc(m)-n = Suc(m-n)";
by (rtac (prem RS rev_mp) 1);
by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
by (ALLGOALS(asm_simp_tac arith_ss));
-val Suc_diff_n = result();
+qed "Suc_diff_n";
goal Arith.thy "Suc(m)-n = if(m<n, 0, Suc(m-n))";
by(simp_tac (nat_ss addsimps [less_imp_diff_is_0, not_less_eq, Suc_diff_n]
setloop (split_tac [expand_if])) 1);
-val if_Suc_diff_n = result();
+qed "if_Suc_diff_n";
goal Arith.thy "P(k) --> (!n. P(Suc(n))--> P(n)) --> P(k-i)";
by (res_inst_tac [("m","k"),("n","i")] diff_induct 1);
by (ALLGOALS (strip_tac THEN' simp_tac arith_ss THEN' TRY o fast_tac HOL_cs));
-val zero_induct_lemma = result();
+qed "zero_induct_lemma";
val prems = goal Arith.thy "[| P(k); !!n. P(Suc(n)) ==> P(n) |] ==> P(0)";
by (rtac (diff_self_eq_0 RS subst) 1);
by (rtac (zero_induct_lemma RS mp RS mp) 1);
by (REPEAT (ares_tac ([impI,allI]@prems) 1));
-val zero_induct = result();
+qed "zero_induct";
(*13 July 1992: loaded in 105.7s*)
@@ -228,12 +228,12 @@
by (ALLGOALS(simp_tac arith_ss));
by (etac le_trans 1);
by (rtac (lessI RS less_imp_le) 1);
-val le_add2 = result();
+qed "le_add2";
goal Arith.thy "n <= ((n + m)::nat)";
by (simp_tac (arith_ss addsimps add_ac) 1);
by (rtac le_add2 1);
-val le_add1 = result();
+qed "le_add1";
val less_add_Suc1 = standard (lessI RS (le_add1 RS le_less_trans));
val less_add_Suc2 = standard (lessI RS (le_add2 RS le_less_trans));
@@ -242,5 +242,5 @@
by (nat_ind_tac "k" 1);
by (ALLGOALS (asm_simp_tac arith_ss));
by (fast_tac (HOL_cs addDs [Suc_leD]) 1);
-val plus_leD1_lemma = result();
+qed "plus_leD1_lemma";
val plus_leD1 = plus_leD1_lemma RS mp;