Boolean Satisfiability Solvers and Their Applications in Model Checking

Yakir Vizel, Georg Weissenbacher, Sharad Malik

Research output: Contribution to journalArticlepeer-review

90 Scopus citations

Abstract

Boolean satisfiability (SAT) - the problem of determining whether there exists an assignment satisfying a given Boolean formula - is a fundamental intractable problem in computer science. SAT has many applications in electronic design automation (EDA), notably in synthesis and verification. Consequently, SAT has received much attention from the EDA community, who developed algorithms that have had a significant impact on the performance of SAT solvers. EDA researchers introduced techniques such as conflict-driven clause learning, novel branching heuristics, and efficient unit propagation. These techniques form the basis of all modern SAT solvers. Using these ideas, contemporary SAT solvers can often handle practical instances with millions of variables and constraints. The continuing advances of SAT solvers are the driving force of modern model checking tools, which are used to check the correctness of hardware designs. Contemporary automated verification techniques such as bounded model checking, proof-based abstraction, interpolation-based model checking, and IC3 have in common that they are all based on SAT solvers and their extensions. In this paper, we trace the most important contributions made to modern SAT solvers by the EDA community, and discuss applications of SAT in hardware model checking.

Original languageEnglish (US)
Article number7225110
Pages (from-to)2021-2035
Number of pages15
JournalProceedings of the IEEE
Volume103
Issue number11
DOIs
StatePublished - Aug 26 2015

All Science Journal Classification (ASJC) codes

  • General Computer Science
  • Electrical and Electronic Engineering

Keywords

  • IC3
  • interpolation
  • model checking
  • proofs
  • satisfiability solving

Fingerprint

Dive into the research topics of 'Boolean Satisfiability Solvers and Their Applications in Model Checking'. Together they form a unique fingerprint.

Cite this