src/HOL/SAT.thy
author webertj
Sat, 24 Sep 2005 13:54:35 +0200
changeset 17627 ff1923b1978b
parent 17625 1539d18e3e9f
child 17631 152ab92e1009
permissions -rw-r--r--
cnf_struct renamed to cnf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17618
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
     1
(*  Title:      HOL/SAT.thy
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
     2
    ID:         $Id$
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
     3
    Author:     Alwen Tiu, Tjark Weber
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
     4
    Copyright   2005
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
     5
17627
ff1923b1978b cnf_struct renamed to cnf
webertj
parents: 17625
diff changeset
     6
Basic setup for the 'sat' and 'satx' tactic.
17618
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
     7
*)
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
     8
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
     9
header {* Reconstructing external resolution proofs for propositional logic *}
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    10
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    11
theory SAT imports HOL
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    12
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    13
uses "Tools/sat_solver.ML"
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    14
     "Tools/cnf_funcs.ML"
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    15
     "Tools/sat_funcs.ML"
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    16
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    17
begin
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    18
17627
ff1923b1978b cnf_struct renamed to cnf
webertj
parents: 17625
diff changeset
    19
ML {* structure sat = SATFunc(structure cnf = cnf); *}
17618
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    20
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    21
method_setup sat = {* Method.no_args (Method.SIMPLE_METHOD sat.sat_tac) *}
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    22
  "SAT solver"
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    23
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    24
method_setup satx = {* Method.no_args (Method.SIMPLE_METHOD sat.satx_tac) *}
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    25
  "SAT solver (with definitional CNF)"
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    26
17627
ff1923b1978b cnf_struct renamed to cnf
webertj
parents: 17625
diff changeset
    27
(*
17618
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    28
method_setup cnf = {* Method.no_args (Method.SIMPLE_METHOD cnf.cnf_tac) *}
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    29
  "Transforming hypotheses in a goal into CNF"
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    30
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    31
method_setup cnf_concl = {* Method.no_args (Method.SIMPLE_METHOD cnf.cnf_concl_tac) *}
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    32
  "Transforming the conclusion of a goal to CNF"
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    33
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    34
method_setup cnf_thin = {* Method.no_args (Method.SIMPLE_METHOD cnf.cnf_thin_tac) *}
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    35
  "Same as cnf, but remove the original hypotheses"
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    36
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    37
method_setup cnfx_thin = {* Method.no_args (Method.SIMPLE_METHOD cnf.cnfx_thin_tac) *}
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    38
  "Same as cnf_thin, but may introduce extra variables"
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    39
*)
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    40
1330157e156a new sat tactic imports resolution proofs from zChaff
webertj
parents:
diff changeset
    41
end