# HG changeset patch # User paulson # Date 904655023 -7200 # Node ID 13a199e94877d2083c1c3b98078e05f7a31f5093 # Parent 8a458866637c8f898591b89903802816a11f215e tidying; moved diff_less to Arith.ML diff -r 8a458866637c -r 13a199e94877 src/HOL/Divides.ML --- a/src/HOL/Divides.ML Tue Sep 01 15:03:10 1998 +0200 +++ b/src/HOL/Divides.ML Tue Sep 01 15:03:43 1998 +0200 @@ -9,21 +9,13 @@ (** Less-then properties **) -(*In ordinary notation: if 0 m - n < m"; -by (subgoal_tac "0 ~ m m - n < m" 1); -by (Blast_tac 1); -by (res_inst_tac [("m","m"),("n","n")] diff_induct 1); -by (ALLGOALS(asm_simp_tac(simpset() addsimps [diff_less_Suc]))); -qed "diff_less"; - val wf_less_trans = [eq_reflection, wf_pred_nat RS wf_trancl] MRS def_wfrec RS trans; (*** Remainder ***) Goal "(%m. m mod n) = wfrec (trancl pred_nat) \ - \ (%f j. if j m mod n = (m-n) mod n"; +by (asm_simp_tac (simpset() addsimps [mod_geq, not_less_iff_le]) 1); +qed "le_mod_geq"; + (*NOT suitable for rewriting: loops*) Goal "0 m mod n = (if m m div n = Suc((m-n) div n)"; +by (asm_simp_tac (simpset() addsimps [div_geq, not_less_iff_le]) 1); +qed "le_div_geq"; + (*NOT suitable for rewriting: loops*) Goal "0 m div n = (if m m mod n < n"; @@ -325,7 +327,7 @@ by (subgoal_tac "~ k*na < k*n" 1); by (asm_simp_tac (simpset() addsimps [zero_less_mult_iff, div_geq, - diff_mult_distrib2 RS sym, diff_less]) 1); + diff_mult_distrib2 RS sym, diff_less]) 1); by (asm_full_simp_tac (simpset() addsimps [not_less_iff_le, le_refl RS mult_le_mono]) 1); qed "div_cancel";