+ All Categories
Home > Education > Formal method

Formal method

Date post: 12-Apr-2017
Category:
Upload: sara-malik
View: 140 times
Download: 0 times
Share this document with a friend
21
SAT SOLVER PROJECT # 5
Transcript
Page 1: Formal method

SAT SOLVER

PROJECT # 5

Page 2: Formal method

Group Members

– Ammara Nadeem– Iqra Hanif– Um E Habiba– Sara Malik

Page 3: Formal method

SAT– 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.

Page 4: Formal method

MINISAT

Page 5: Formal method

Introduction

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 projects.

MINISAT was recently awarded in the three industrial categories.

Page 6: Formal method

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.

Page 7: Formal method

Input and Output format of MiniSatLike 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 &).

Page 8: Formal method

Example:

(x1 |-x5 | x4) &(-x1 | x5 | x3)

Page 9: Formal method

OUTPUT– It will output to either "SATISFIABLE"

or "UNSATISFIABLE" depending on whether or not the expression is satisfiable or not.

Page 10: Formal method

SPEAR SAT SOLVER

Page 11: Formal method

INTRODUCTION

SPEAR is an arithmetic theorem prover and is a simple SAT solver designed for proving software verification but is also fast on other industrial problems.

Page 12: Formal method

ArchitectureFollowing features were modelled after Minisat.

• Repeated restarts and learned clause minimizationThe 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 configurableAlmost 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.

Page 13: Formal method

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, without timeouts.

This large improvement was achieved with optimizing the parameters, so we expect more significant speedup once we optimize the parameters for software verification problems.

Cont..

Page 14: Formal method

Parameter Optimization

SPEAR is an excellent tool for automatic parameter optimizationfor 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 verification instances.

Page 15: Formal method

Problems Faced:

– 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.

Page 16: Formal method

Conclusion:

– 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.

Page 17: Formal method

SCREENSHOTS

Page 18: Formal method

• The download links are given.

• After downloading, no .exe file is available for installation.

Page 20: Formal method

Problems in Downloading setups

• Unknown format error• Downloaded but no .exe file• User guide isn’t available• License issue• Incomplete Setups

Page 21: Formal method

Thank You


Recommended