src/HOL/Tools/Sledgehammer/meson_tactic.ML
author blanchet
Mon, 28 Jun 2010 18:08:36 +0200
changeset 37619 bcb19259f92a
parent 37618 fa57a87f92a0
child 37628 78334f400ae6
permissions -rw-r--r--
killed "expand_defs_tac"; it has no raison d'etre now that Skolemization is always done "inline"; the comment in the code suggested that it was used for other things as well but the code clearly did nothing if no Skolem "Frees" were in the problem
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35865
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
     1
(*  Title:      HOL/Tools/Sledgehammer/meson_tactic.ML
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
     2
    Author:     Jia Meng, Cambridge University Computer Laboratory
37619
bcb19259f92a killed "expand_defs_tac";
blanchet
parents: 37618
diff changeset
     3
    Author:     Jasmin Blanchette, TU Muenchen
35865
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
     4
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
     5
MESON general tactic and proof method.
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
     6
*)
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
     7
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
     8
signature MESON_TACTIC =
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
     9
sig
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    10
  val meson_general_tac : Proof.context -> thm list -> int -> tactic
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    11
  val setup: theory -> theory
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    12
end;
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    13
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    14
structure Meson_Tactic : MESON_TACTIC =
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    15
struct
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    16
37619
bcb19259f92a killed "expand_defs_tac";
blanchet
parents: 37618
diff changeset
    17
fun meson_general_tac ctxt ths =
35865
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    18
  let
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    19
    val thy = ProofContext.theory_of ctxt
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    20
    val ctxt0 = Classical.put_claset HOL_cs ctxt
37619
bcb19259f92a killed "expand_defs_tac";
blanchet
parents: 37618
diff changeset
    21
  in Meson.meson_tac ctxt0 (maps (Clausifier.cnf_axiom thy) ths) end
35865
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    22
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    23
val setup =
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    24
  Method.setup @{binding meson} (Attrib.thms >> (fn ths => fn ctxt =>
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    25
    SIMPLE_METHOD' (CHANGED_PROP o meson_general_tac ctxt ths)))
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    26
    "MESON resolution proof procedure";
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    27
2f8fb5242799 more Sledgehammer refactoring
blanchet
parents:
diff changeset
    28
end;