Decision procedures for bit-vectors, arrays and integers

  • Authors:
  • David L. Dill;Vijay Ganesh

  • Affiliations:
  • Stanford University;Stanford University

  • Venue:
  • Decision procedures for bit-vectors, arrays and integers
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Decision procedures that can check satisfiability of formulas over mathematical theories such as Boolean logic, bit-vectors and arrays are increasingly being used in varied areas of computer science. There are two primary reasons for this trend. First, many decision problems in computer science are easily translated into satisfiability problems in some mathematical theory. Second, in recent years considerable progress has been made in the design and implementation of decision procedures. As applications cover new ground, they generate larger, more complex formulas, and demand greater efficiency from decision procedures they employ. This constant demand for more efficient, powerful and robust decision procedures forms the motivation for this dissertation. The design and implementation of new, efficient decision procedures for the satisfiability problem of the quantifier-free theories of bit-vectors, arrays, and mixed real and integer linear arithmetic is discussed. More specifically, this thesis makes three contributions. First, a new efficient decision procedure for the theory of bit-vectors and arrays, called STP, is presented. The architecture of the STP tool is SAT-based, i.e. the input formula is translated into a Boolean formula after significant preprocessing, and this formula is then fed to a decision procedure for Boolean logic (aka SAT solver). The preprocessing steps consist of a solver for linear bit-vector arithmetic, and two algorithms based on the abstraction-refinement paradigm to handle large arrays. The solver algorithm is online, based on a solve-and-substitute method, and can solve for whole bit-vectors or parts thereof. The design of STP and the aforementioned algorithms together have proved very effective in deciding extremely large formulas from real-world applications like bug-finding and program analysis. Second, a mixed real and integer linear arithmetic decision procedure is presented. The decision procedure is online and proof producing, characteristics important in making the decision procedure efficient in the context of combining decision procedures of various mathematical theories.Third, a new decision procedure for the quantifier-free fragment of Presburger arithmetic is presented. The decision procedure is based on translating the satisfiability problem of this fragment into the language emptiness problem of a finite state automaton, which in turn is translated into a model-checking problem.