diff -r 3a8d722fd3ff -r 16c4ea954511 Arith.ML --- 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 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] " : pred_nat^+ = (m 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 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 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 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 (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. 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;