equal
deleted
inserted
replaced
5 *) |
5 *) |
6 |
6 |
7 signature INTUITIONISTIC = |
7 signature INTUITIONISTIC = |
8 sig |
8 sig |
9 val prover_tac: Proof.context -> int option -> int -> tactic |
9 val prover_tac: Proof.context -> int option -> int -> tactic |
10 val method_setup: bstring -> theory -> theory |
10 val method_setup: binding -> theory -> theory |
11 end; |
11 end; |
12 |
12 |
13 structure Intuitionistic: INTUITIONISTIC = |
13 structure Intuitionistic: INTUITIONISTIC = |
14 struct |
14 struct |
15 |
15 |
82 modifier elimN Args.colon (Scan.succeed ()) ContextRules.elim, |
82 modifier elimN Args.colon (Scan.succeed ()) ContextRules.elim, |
83 modifier introN Args.bang_colon Args.bang ContextRules.intro_bang, |
83 modifier introN Args.bang_colon Args.bang ContextRules.intro_bang, |
84 modifier introN Args.colon (Scan.succeed ()) ContextRules.intro, |
84 modifier introN Args.colon (Scan.succeed ()) ContextRules.intro, |
85 Args.del -- Args.colon >> K (I, ContextRules.rule_del)]; |
85 Args.del -- Args.colon >> K (I, ContextRules.rule_del)]; |
86 |
86 |
87 val method = |
|
88 Method.bang_sectioned_args' modifiers (Scan.lift (Scan.option OuterParse.nat)) |
|
89 (fn n => fn prems => fn ctxt => METHOD (fn facts => |
|
90 HEADGOAL (Method.insert_tac (prems @ facts) THEN' |
|
91 ObjectLogic.atomize_prems_tac THEN' prover_tac ctxt n))); |
|
92 |
|
93 in |
87 in |
94 |
88 |
95 fun method_setup name = Method.add_method (name, method, "intuitionistic proof search"); |
89 fun method_setup name = |
|
90 Method.setup name |
|
91 (Args.bang_facts -- Scan.lift (Scan.option OuterParse.nat) --| |
|
92 Method.sections modifiers >> |
|
93 (fn (prems, n) => fn ctxt => METHOD (fn facts => |
|
94 HEADGOAL (Method.insert_tac (prems @ facts) THEN' |
|
95 ObjectLogic.atomize_prems_tac THEN' prover_tac ctxt n)))) |
|
96 "intuitionistic proof search"; |
96 |
97 |
97 end; |
98 end; |
98 |
99 |
99 end; |
100 end; |
100 |
101 |