10 |
10 |
11 val atps: string Unsynchronized.ref |
11 val atps: string Unsynchronized.ref |
12 val timeout: int Unsynchronized.ref |
12 val timeout: int Unsynchronized.ref |
13 val full_types: bool Unsynchronized.ref |
13 val full_types: bool Unsynchronized.ref |
14 val default_params : theory -> (string * string) list -> params |
14 val default_params : theory -> (string * string) list -> params |
15 val setup: theory -> theory |
|
16 end; |
15 end; |
17 |
16 |
18 structure Sledgehammer_Isar : SLEDGEHAMMER_ISAR = |
17 structure Sledgehammer_Isar : SLEDGEHAMMER_ISAR = |
19 struct |
18 struct |
20 |
19 |
22 open Sledgehammer_Fact_Filter |
21 open Sledgehammer_Fact_Filter |
23 open Sledgehammer_Fact_Preprocessor |
22 open Sledgehammer_Fact_Preprocessor |
24 open ATP_Manager |
23 open ATP_Manager |
25 open ATP_Systems |
24 open ATP_Systems |
26 open Sledgehammer_Fact_Minimizer |
25 open Sledgehammer_Fact_Minimizer |
27 |
|
28 (** Proof method used in Isar proofs **) |
|
29 |
|
30 val neg_clausify_setup = |
|
31 Method.setup @{binding neg_clausify} |
|
32 (Scan.succeed (SIMPLE_METHOD' o neg_clausify_tac) |
|
33 o tap (fn _ => legacy_feature "Old 'neg_clausify' method -- \ |
|
34 \rerun Sledgehammer to obtain a direct \ |
|
35 \proof")) |
|
36 "conversion of goal to negated conjecture clauses (legacy)" |
|
37 |
|
38 (** Attribute for converting a theorem into clauses **) |
|
39 |
|
40 val parse_clausify_attribute : attribute context_parser = |
|
41 Scan.lift Parse.nat |
|
42 >> (fn i => Thm.rule_attribute (fn context => fn th => |
|
43 let val thy = Context.theory_of context in |
|
44 Meson.make_meta_clause (nth (cnf_axiom thy th) i) |
|
45 end)) |
|
46 |
|
47 val clausify_setup = |
|
48 Attrib.setup @{binding clausify} |
|
49 (parse_clausify_attribute |
|
50 o tap (fn _ => legacy_feature "Old 'clausify' attribute")) |
|
51 "conversion of theorem to clauses" |
|
52 |
26 |
53 (** Sledgehammer commands **) |
27 (** Sledgehammer commands **) |
54 |
28 |
55 fun add_to_relevance_override ns : relevance_override = |
29 fun add_to_relevance_override ns : relevance_override = |
56 {add = ns, del = [], only = false} |
30 {add = ns, del = [], only = false} |