diff -r 7d46aa03696e -r 087d81f5213e src/HOL/HOL.thy --- a/src/HOL/HOL.thy Mon Apr 06 22:11:01 2015 +0200 +++ b/src/HOL/HOL.thy Mon Apr 06 23:14:05 2015 +0200 @@ -1374,12 +1374,15 @@ ); *} -definition "induct_forall P \ \x. P x" -definition "induct_implies A B \ A \ B" -definition "induct_equal x y \ x = y" -definition "induct_conj A B \ A \ B" -definition "induct_true \ True" -definition "induct_false \ False" +context +begin + +restricted definition "induct_forall P \ \x. P x" +restricted definition "induct_implies A B \ A \ B" +restricted definition "induct_equal x y \ x = y" +restricted definition "induct_conj A B \ A \ B" +restricted definition "induct_true \ True" +restricted definition "induct_false \ False" lemma induct_forall_eq: "(\x. P x) \ Trueprop (induct_forall (\x. P x))" by (unfold atomize_all induct_forall_def) @@ -1444,8 +1447,8 @@ ML_file "~~/src/Tools/induction.ML" -setup {* - Context.theory_map (Induct.map_simpset (fn ss => ss +declaration {* + fn _ => Induct.map_simpset (fn ss => ss addsimprocs [Simplifier.simproc_global @{theory} "swap_induct_false" ["induct_false ==> PROP P ==> PROP Q"] @@ -1468,7 +1471,7 @@ | _ => NONE))] |> Simplifier.set_mksimps (fn ctxt => Simpdata.mksimps Simpdata.mksimps_pairs ctxt #> - map (rewrite_rule ctxt (map Thm.symmetric @{thms induct_rulify_fallback}))))) + map (rewrite_rule ctxt (map Thm.symmetric @{thms induct_rulify_fallback})))) *} text {* Pre-simplification of induction and cases rules *} @@ -1523,7 +1526,7 @@ lemma [induct_simp]: "x = x \ True" by (rule simp_thms) -hide_const induct_forall induct_implies induct_equal induct_conj induct_true induct_false +end ML_file "~~/src/Tools/induct_tacs.ML"