src/HOL/SAT.thy
author blanchet
Thu Sep 02 11:29:02 2010 +0200 (2010-09-02)
changeset 39036 dff91b90d74c
parent 34120 f9920a3ddf50
child 46096 a00685a18e55
permissions -rw-r--r--
use definitional CNFs in Metis rather than plain CNF, following a suggestion by Joe Hurd;
this *really* speeds up things -- HOL now builds 12% faster on my machine
webertj@17618
     1
(*  Title:      HOL/SAT.thy
webertj@17618
     2
    Author:     Alwen Tiu, Tjark Weber
webertj@17618
     3
    Copyright   2005
webertj@17618
     4
webertj@17627
     5
Basic setup for the 'sat' and 'satx' tactic.
webertj@17618
     6
*)
webertj@17618
     7
webertj@17618
     8
header {* Reconstructing external resolution proofs for propositional logic *}
webertj@17618
     9
haftmann@26521
    10
theory SAT
haftmann@26521
    11
imports Refute
wenzelm@17722
    12
uses
haftmann@26521
    13
  "Tools/sat_funcs.ML"
webertj@17618
    14
begin
webertj@17618
    15
wenzelm@17722
    16
text {* \medskip Late package setup: default values for refute, see
wenzelm@21588
    17
  also theory @{theory Refute}. *}
wenzelm@17722
    18
wenzelm@17722
    19
refute_params
wenzelm@17722
    20
 ["itself"=1,
wenzelm@17722
    21
  minsize=1,
wenzelm@17722
    22
  maxsize=8,
wenzelm@17722
    23
  maxvars=10000,
wenzelm@17722
    24
  maxtime=60,
blanchet@34120
    25
  satsolver="auto",
blanchet@34120
    26
  no_assms="false"]
wenzelm@17722
    27
wenzelm@32232
    28
ML {* structure sat = SATFunc(cnf) *}
webertj@17618
    29
wenzelm@32232
    30
method_setup sat = {* Scan.succeed (SIMPLE_METHOD' o sat.sat_tac) *}
webertj@17618
    31
  "SAT solver"
webertj@17618
    32
wenzelm@32232
    33
method_setup satx = {* Scan.succeed (SIMPLE_METHOD' o sat.satx_tac) *}
webertj@17618
    34
  "SAT solver (with definitional CNF)"
webertj@17618
    35
webertj@17618
    36
end