– Ammara Nadeem
– Iqra Hanif
– Um E Habiba
– Sara Malik
– In computer science, the Satisfiability Problem is the
problem of determining if there exists an analysis that
satisfies a given Boolean formula.
– SAT is a logic.
– SAT has very efficient implementations.
MINISAT is a minimalistic, open-source SAT solver
It is developed to help researchers to get started on SAT.
It is released under the MIT license, and is currently used in a number of
MINISAT was recently awarded in the three industrial categories.
Features of MINISAT:
• Easy to modify. MINISAT is small and well-documented and
well-designed, making it an ideal starting point for adapting
SAT based techniques.
• Highly efficient. Winning all the industrial categories of the
SAT 2005 competition, MINISAT is a good starting point both
for future research in SAT, and for applications using SAT.
• Designed for integration. It is a good choice for integrating as
a backend to another tool, such as a model checker or a more
generic constraint solver.
Input andOutput format of MiniSat
Like many SAT solvers, MiniSAT requires that its input be in conjunctive
normal form (CNF or cnf).
CNF is built from these building blocks:
term: Term is either a boolean variable (e.g., x4) or a negated
boolean variable (NOT x4, written here as -x4).
clause: Clause is a set of one or more terms, connected with OR
(written here as |). boolean variables may not repeat inside a clause.
expression: Expression is a set of one or more clauses, each
connected by AND (written here as &).
SPEAR is an arithmetic theorem prover and is a simple SAT solver
designed for proving software verification but is also fast on other
Following features were modelled after Minisat.
• Repeated restarts and learned clause minimization
The implementation of the clause minimization was improved in several ways.
For example, Minisat uses stack-based work queue for clause minimization, while SPEAR
uses FIFO, which has more memory access pattern, and is easier to optimize.
• SPEAR is very configurable
Almost all search parameters are modifiable from the command line. SPEAR supports
individual and predefined parameter sets for specific problems.
This is an important feature, because various combinations of parameters can have drastic
effects on the runtimes.
With default parameters, 287 software verification instances were
solved in 160,441 sec, with 38 timeouts, while with the optimized
parameters, the same set of instances were solved in 2,857 sec,
This large improvement was achieved with optimizing the
parameters, so we expect more significant speedup once we optimize
the parameters for software verification problems.
SPEAR is an excellent tool for automatic parameter optimization
for the following reasons:
• It has a large number of parameters of various types. Its 25 parameters include
categorical choices between heuristics, nominal parameters, as well as integer
and continuous parameters.
• It shows state-of-the-art performance for a practically relevant class of problem
instances, and tuning it will thus be of high practical relevance. In particular, in our
analysis SPEAR consistently showed the best results for solving software
– We faced problem in seeking the exact required algorithms to be
optimized, code information and in downloading and installation of
these SAT Solvers. We weren’t even able to get their application and
on searching we get the error messages like ‘Page Not Found’. We
couldn’t find any code of an open source SAT solver so that we could
able to optimize that , consequently we only compared two SAT
Solvers and discussed their strengths and weaknesses and found out
which is an easy tool for optimization.
– Our study concludes that SPEAR Tool is better in optimization than
MINISAT in several ways. Because the implementation of the clause
minimization is improved in SPEAR. In our
– Analysis SPEAR consistently showed the best results for solving
software verification instances. SPEAR is very configurable. Almost
all search parameters are modifiable from the command line.
Besides setting individual parameters, SPEAR also supports
predefined parameter sets for specific problems. Although Minisat
is easy to modify, efficient to use and supports incremental SAT. But
Minisat uses stack-based work queue for clause minimization, while
SPEAR uses FIFO, which has a much more predictable memory
access pattern, and is easier to optimize.
– Thus optimization is easy when done on Spear.