src/HOL/Tools/res_axioms.ML
changeset 21588 cd0dc678a205
parent 21505 13d4dba99337
child 21602 cb13024d0e36
equal deleted inserted replaced
21587:a3561bfe0ada 21588:cd0dc678a205
   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