equal
deleted
inserted
replaced
606 | SOME (th',cls) => |
606 | SOME (th',cls) => |
607 if eq_thm(th,th') then cls else skolem_thm th; |
607 if eq_thm(th,th') then cls else skolem_thm th; |
608 |
608 |
609 fun cnf_rules_of_ths ths = List.concat (map skolem_use_cache_thm ths); |
609 fun cnf_rules_of_ths ths = List.concat (map skolem_use_cache_thm ths); |
610 |
610 |
611 fun meson_meth ths ctxt = |
611 val meson_method_setup = Method.add_methods |
612 Method.SIMPLE_METHOD' HEADGOAL |
612 [("meson", Method.thms_args (fn ths => |
613 (CHANGED_PROP o Meson.meson_claset_tac (cnf_rules_of_ths ths) HOL_cs); |
613 Method.SIMPLE_METHOD' (CHANGED_PROP o Meson.meson_claset_tac (cnf_rules_of_ths ths) HOL_cs)), |
614 |
614 "MESON resolution proof procedure")]; |
615 val meson_method_setup = |
|
616 Method.add_methods |
|
617 [("meson", Method.thms_ctxt_args meson_meth, |
|
618 "MESON resolution proof procedure")]; |
|
619 |
615 |
620 (** Attribute for converting a theorem into clauses **) |
616 (** Attribute for converting a theorem into clauses **) |
621 |
617 |
622 fun meta_cnf_axiom th = map Meson.make_meta_clause (cnf_axiom (pairname th)); |
618 fun meta_cnf_axiom th = map Meson.make_meta_clause (cnf_axiom (pairname th)); |
623 |
619 |