src/Tools/intuitionistic.ML
changeset 36960 01594f816e3a
parent 35625 9c818cab0dd0
child 52732 b4da1f2ec73f
equal deleted inserted replaced
36959:f5417836dbea 36960:01594f816e3a
    69 val introN = "intro";
    69 val introN = "intro";
    70 val elimN = "elim";
    70 val elimN = "elim";
    71 val destN = "dest";
    71 val destN = "dest";
    72 
    72 
    73 fun modifier name kind kind' att =
    73 fun modifier name kind kind' att =
    74   Args.$$$ name |-- (kind >> K NONE || kind' |-- OuterParse.nat --| Args.colon >> SOME)
    74   Args.$$$ name |-- (kind >> K NONE || kind' |-- Parse.nat --| Args.colon >> SOME)
    75     >> (pair (I: Proof.context -> Proof.context) o att);
    75     >> (pair (I: Proof.context -> Proof.context) o att);
    76 
    76 
    77 val modifiers =
    77 val modifiers =
    78  [modifier destN Args.bang_colon Args.bang Context_Rules.dest_bang,
    78  [modifier destN Args.bang_colon Args.bang Context_Rules.dest_bang,
    79   modifier destN Args.colon (Scan.succeed ()) Context_Rules.dest,
    79   modifier destN Args.colon (Scan.succeed ()) Context_Rules.dest,
    85 
    85 
    86 in
    86 in
    87 
    87 
    88 fun method_setup name =
    88 fun method_setup name =
    89   Method.setup name
    89   Method.setup name
    90     (Scan.lift (Scan.option OuterParse.nat) --| Method.sections modifiers >>
    90     (Scan.lift (Scan.option Parse.nat) --| Method.sections modifiers >>
    91       (fn opt_lim => fn ctxt =>
    91       (fn opt_lim => fn ctxt =>
    92         SIMPLE_METHOD' (Object_Logic.atomize_prems_tac THEN' prover_tac ctxt opt_lim)))
    92         SIMPLE_METHOD' (Object_Logic.atomize_prems_tac THEN' prover_tac ctxt opt_lim)))
    93     "intuitionistic proof search";
    93     "intuitionistic proof search";
    94 
    94 
    95 end;
    95 end;