38 val iter_deepen_prolog_tac: thm list -> tactic |
38 val iter_deepen_prolog_tac: thm list -> tactic |
39 val iter_deepen_meson_tac: Proof.context -> thm list -> int -> tactic |
39 val iter_deepen_meson_tac: Proof.context -> thm list -> int -> tactic |
40 val make_meta_clause: thm -> thm |
40 val make_meta_clause: thm -> thm |
41 val make_meta_clauses: thm list -> thm list |
41 val make_meta_clauses: thm list -> thm list |
42 val meson_tac: Proof.context -> thm list -> int -> tactic |
42 val meson_tac: Proof.context -> thm list -> int -> tactic |
43 val setup : theory -> theory |
|
44 end |
43 end |
45 |
44 |
46 structure Meson : MESON = |
45 structure Meson : MESON = |
47 struct |
46 struct |
48 |
47 |
49 val (trace, trace_setup) = Attrib.config_bool "meson_trace" (K false) |
48 val trace = Attrib.setup_config_bool @{binding meson_trace} (K false) |
50 |
49 |
51 fun trace_msg ctxt msg = if Config.get ctxt trace then tracing (msg ()) else () |
50 fun trace_msg ctxt msg = if Config.get ctxt trace then tracing (msg ()) else () |
52 |
51 |
53 val max_clauses_default = 60 |
52 val max_clauses_default = 60 |
54 val (max_clauses, max_clauses_setup) = |
53 val max_clauses = Attrib.setup_config_int @{binding meson_max_clauses} (K max_clauses_default) |
55 Attrib.config_int "meson_max_clauses" (K max_clauses_default) |
|
56 |
54 |
57 (*No known example (on 1-5-2007) needs even thirty*) |
55 (*No known example (on 1-5-2007) needs even thirty*) |
58 val iter_deepen_limit = 50; |
56 val iter_deepen_limit = 50; |
59 |
57 |
60 val disj_forward = @{thm disj_forward}; |
58 val disj_forward = @{thm disj_forward}; |