equal
deleted
inserted
replaced
939 |
939 |
940 fun standard_tac ctxt facts = |
940 fun standard_tac ctxt facts = |
941 HEADGOAL (some_rule_tac ctxt facts) ORELSE |
941 HEADGOAL (some_rule_tac ctxt facts) ORELSE |
942 Class.standard_intro_classes_tac ctxt facts; |
942 Class.standard_intro_classes_tac ctxt facts; |
943 |
943 |
944 fun default_tac ctxt facts st = |
|
945 (if Method.detect_closure_state st then |
|
946 legacy_feature |
|
947 ("Old method \"default\"; use \"standard\" instead" ^ Position.here (Position.thread_data ())) |
|
948 else (); |
|
949 standard_tac ctxt facts st); |
|
950 |
|
951 end; |
944 end; |
952 |
945 |
953 |
946 |
954 (* automatic methods *) |
947 (* automatic methods *) |
955 |
948 |
971 |
964 |
972 val _ = |
965 val _ = |
973 Theory.setup |
966 Theory.setup |
974 (Method.setup @{binding standard} (Scan.succeed (METHOD o standard_tac)) |
967 (Method.setup @{binding standard} (Scan.succeed (METHOD o standard_tac)) |
975 "standard proof step: classical intro/elim rule or class introduction" #> |
968 "standard proof step: classical intro/elim rule or class introduction" #> |
976 Method.setup @{binding default} (Scan.succeed (METHOD o default_tac)) |
|
977 "standard proof step: classical intro/elim rule or class introduction (legacy)" #> |
|
978 Method.setup @{binding rule} |
969 Method.setup @{binding rule} |
979 (Attrib.thms >> (fn rules => fn ctxt => METHOD (HEADGOAL o rule_tac ctxt rules))) |
970 (Attrib.thms >> (fn rules => fn ctxt => METHOD (HEADGOAL o rule_tac ctxt rules))) |
980 "apply some intro/elim rule (potentially classical)" #> |
971 "apply some intro/elim rule (potentially classical)" #> |
981 Method.setup @{binding contradiction} |
972 Method.setup @{binding contradiction} |
982 (Scan.succeed (fn ctxt => Method.rule ctxt [Data.not_elim, Drule.rotate_prems 1 Data.not_elim])) |
973 (Scan.succeed (fn ctxt => Method.rule ctxt [Data.not_elim, Drule.rotate_prems 1 Data.not_elim])) |