--- a/src/HOL/Prolog/prolog.ML Mon May 20 17:14:39 2013 +0200
+++ b/src/HOL/Prolog/prolog.ML Mon May 20 18:37:35 2013 +0200
@@ -65,7 +65,8 @@
@{thm all_conj_distrib}, (* "(! x. P x & Q x) = ((! x. P x) & (! x. Q x))" *)
@{thm imp_conjL} RS sym, (* "(D :- G1 :- G2) = (D :- G1 & G2)" *)
@{thm imp_conjR}, (* "(D1 & D2 :- G) = ((D1 :- G) & (D2 :- G))" *)
- @{thm imp_all}]; (* "((!x. D) :- G) = (!x. D :- G)" *)
+ @{thm imp_all}] (* "((!x. D) :- G) = (!x. D :- G)" *)
+ |> simpset_of;
(*val hyp_resolve_tac = Subgoal.FOCUS_PREMS (fn {prems, ...} =>
@@ -114,7 +115,7 @@
rtac allI, (* "(!!x. P x) ==> ! x. P x" *)
rtac exI, (* "P x ==> ? x. P x" *)
rtac impI THEN' (* "(P ==> Q) ==> P --> Q" *)
- asm_full_simp_tac atomize_ss THEN' (* atomize the asms *)
+ asm_full_simp_tac (put_simpset atomize_ss ctxt) THEN' (* atomize the asms *)
(REPEAT_DETERM o (etac conjE)) (* split the asms *)
])
ORELSE' resolve_tac [disjI1,disjI2] (* "P ==> P | Q","Q ==> P | Q"*)