equal
deleted
inserted
replaced
20 val get_dest : Context.generic -> thm list |
20 val get_dest : Context.generic -> thm list |
21 val get_cong : Context.generic -> thm list |
21 val get_cong : Context.generic -> thm list |
22 |
22 |
23 val measurable_tac : Proof.context -> thm list -> tactic |
23 val measurable_tac : Proof.context -> thm list -> tactic |
24 |
24 |
25 val simproc : Simplifier.proc |
25 val proc : Simplifier.proc |
26 |
26 |
27 val add_preprocessor : string -> preprocessor -> Context.generic -> Context.generic |
27 val add_preprocessor : string -> preprocessor -> Context.generic -> Context.generic |
28 val del_preprocessor : string -> Context.generic -> Context.generic |
28 val del_preprocessor : string -> Context.generic -> Context.generic |
29 val add_local_cong : thm -> Proof.context -> Proof.context |
29 val add_local_cong : thm -> Proof.context -> Proof.context |
30 |
30 |
31 val prepare_facts : Proof.context -> thm list -> (thm list * Proof.context) |
31 val prepare_facts : Proof.context -> thm list -> (thm list * Proof.context) |
32 end ; |
32 end |
33 |
33 |
34 structure Measurable : MEASURABLE = |
34 structure Measurable : MEASURABLE = |
35 struct |
35 struct |
36 |
36 |
37 type preprocessor = thm -> Proof.context -> thm list * Proof.context |
37 type preprocessor = thm -> Proof.context -> thm list * Proof.context |
254 ORELSE' (CHANGED o sets_cong_tac) |
254 ORELSE' (CHANGED o sets_cong_tac) |
255 ORELSE' (K (debug_tac ctxt (K "backtrack") no_tac)) |
255 ORELSE' (K (debug_tac ctxt (K "backtrack") no_tac)) |
256 |
256 |
257 in debug_tac ctxt (K "start") (REPEAT (single_step_tac 1)) end; |
257 in debug_tac ctxt (K "start") (REPEAT (single_step_tac 1)) end; |
258 |
258 |
259 fun simproc ctxt redex = |
259 fun proc ctxt redex = |
260 let |
260 let |
261 val t = HOLogic.mk_Trueprop (Thm.term_of redex); |
261 val t = HOLogic.mk_Trueprop (Thm.term_of redex); |
262 fun tac {context = ctxt, prems = _ } = |
262 fun tac {context = ctxt, prems = _ } = |
263 SOLVE (measurable_tac ctxt (Simplifier.prems_of ctxt)); |
263 SOLVE (measurable_tac ctxt (Simplifier.prems_of ctxt)); |
264 in \<^try>\<open>Goal.prove ctxt [] [] t tac RS @{thm Eq_TrueI}\<close> end; |
264 in \<^try>\<open>Goal.prove ctxt [] [] t tac RS @{thm Eq_TrueI}\<close> end; |