equal
deleted
inserted
replaced
225 *) |
225 *) |
226 ML \<open> |
226 ML \<open> |
227 val config_fast_solver = Attrib.setup_config_bool @{binding fast_solver} (K false); |
227 val config_fast_solver = Attrib.setup_config_bool @{binding fast_solver} (K false); |
228 val fast_solver = mk_solver "fast_solver" (fn ctxt => |
228 val fast_solver = mk_solver "fast_solver" (fn ctxt => |
229 if Config.get ctxt config_fast_solver |
229 if Config.get ctxt config_fast_solver |
230 then assume_tac ctxt ORELSE' (etac notE) |
230 then assume_tac ctxt ORELSE' (eresolve_tac ctxt [notE]) |
231 else K no_tac); |
231 else K no_tac); |
232 \<close> |
232 \<close> |
233 |
233 |
234 setup \<open>map_theory_simpset (fn ctxt => ctxt addSSolver fast_solver)\<close> |
234 setup \<open>map_theory_simpset (fn ctxt => ctxt addSSolver fast_solver)\<close> |
235 |
235 |
795 steps of the implementation, and try to solve the idling case by simplification |
795 steps of the implementation, and try to solve the idling case by simplification |
796 *) |
796 *) |
797 ML \<open> |
797 ML \<open> |
798 fun split_idle_tac ctxt = |
798 fun split_idle_tac ctxt = |
799 SELECT_GOAL |
799 SELECT_GOAL |
800 (TRY (rtac @{thm actionI} 1) THEN |
800 (TRY (resolve_tac ctxt @{thms actionI} 1) THEN |
801 Induct_Tacs.case_tac ctxt "(s,t) \<Turnstile> unchanged (e p, c p, r p, m p, rmhist!p)" [] NONE 1 THEN |
801 Induct_Tacs.case_tac ctxt "(s,t) \<Turnstile> unchanged (e p, c p, r p, m p, rmhist!p)" [] NONE 1 THEN |
802 rewrite_goals_tac ctxt @{thms action_rews} THEN |
802 rewrite_goals_tac ctxt @{thms action_rews} THEN |
803 forward_tac ctxt [temp_use ctxt @{thm Step1_4_7}] 1 THEN |
803 forward_tac ctxt [temp_use ctxt @{thm Step1_4_7}] 1 THEN |
804 asm_full_simp_tac ctxt 1); |
804 asm_full_simp_tac ctxt 1); |
805 \<close> |
805 \<close> |