equal
deleted
inserted
replaced
15 val bad_for_atp: thm -> bool |
15 val bad_for_atp: thm -> bool |
16 val type_has_topsort: typ -> bool |
16 val type_has_topsort: typ -> bool |
17 val cnf_rules_pairs: theory -> (string * thm) list -> (thm * (string * int)) list |
17 val cnf_rules_pairs: theory -> (string * thm) list -> (thm * (string * int)) list |
18 val suppress_endtheory: bool Unsynchronized.ref |
18 val suppress_endtheory: bool Unsynchronized.ref |
19 (*for emergency use where endtheory causes problems*) |
19 (*for emergency use where endtheory causes problems*) |
20 val strip_subgoal : thm -> int -> term list * term list * term |
20 val strip_subgoal : thm -> int -> (string * typ) list * term list * term |
21 val neg_clausify: thm -> thm list |
21 val neg_clausify: thm -> thm list |
22 val neg_conjecture_clauses: |
22 val neg_conjecture_clauses: |
23 Proof.context -> thm -> int -> thm list list * (string * typ) list |
23 Proof.context -> thm -> int -> thm list list * (string * typ) list |
24 val neg_clausify_tac: Proof.context -> int -> tactic |
24 val neg_clausify_tac: Proof.context -> int -> tactic |
25 val setup: theory -> theory |
25 val setup: theory -> theory |
461 fun strip_subgoal goal i = |
461 fun strip_subgoal goal i = |
462 let |
462 let |
463 val (t, frees) = Logic.goal_params (prop_of goal) i |
463 val (t, frees) = Logic.goal_params (prop_of goal) i |
464 val hyp_ts = t |> Logic.strip_assums_hyp |> map (curry subst_bounds frees) |
464 val hyp_ts = t |> Logic.strip_assums_hyp |> map (curry subst_bounds frees) |
465 val concl_t = t |> Logic.strip_assums_concl |> curry subst_bounds frees |
465 val concl_t = t |> Logic.strip_assums_concl |> curry subst_bounds frees |
466 in (rev frees, hyp_ts, concl_t) end |
466 in (rev (map dest_Free frees), hyp_ts, concl_t) end |
467 |
467 |
468 (*** Converting a subgoal into negated conjecture clauses. ***) |
468 (*** Converting a subgoal into negated conjecture clauses. ***) |
469 |
469 |
470 fun neg_skolemize_tac ctxt = |
470 fun neg_skolemize_tac ctxt = |
471 EVERY' [rtac ccontr, Object_Logic.atomize_prems_tac, Meson.skolemize_tac ctxt]; |
471 EVERY' [rtac ccontr, Object_Logic.atomize_prems_tac, Meson.skolemize_tac ctxt]; |