Beaver: Engineering an Efficient SMT Solver for Bit-Vector Arithmetic

  • Susmit Jha
  • Rhishikesh Limaye
  • Sanjit A. Seshia
Conference paper

DOI: 10.1007/978-3-642-02658-4_53

Part of the Lecture Notes in Computer Science book series (LNCS, volume 5643)
Cite this paper as:
Jha S., Limaye R., Seshia S.A. (2009) Beaver: Engineering an Efficient SMT Solver for Bit-Vector Arithmetic. In: Bouajjani A., Maler O. (eds) Computer Aided Verification. CAV 2009. Lecture Notes in Computer Science, vol 5643. Springer, Berlin, Heidelberg

Abstract

We present the key ideas in the design and implementation of Beaver, an SMT solver for quantifier-free finite-precision bit-vector logic (QF_BV). Beaver uses an eager approach, encoding the original SMT problem into a Boolean satisfiability (SAT) problem using a series of word-level and bit-level transformations. In this paper, we describe the most effective transformations, such as propagating constants and equalities at the word-level, and using and-inverter graph rewriting techniques at the bit-level. We highlight implementation details of these transformations that distinguishes Beaver from other solvers. We present an experimental analysis of the effectiveness of Beaver’s techniques on both hardware and software benchmarks with a selection of back-end SAT solvers.

Beaver is an open-source tool implemented in Ocaml, usable with any back-end SAT engine, and has a well-documented extensible code base that can be used to experiment with new algorithms and techniques.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Susmit Jha
    • 1
  • Rhishikesh Limaye
    • 1
  • Sanjit A. Seshia
    • 1
  1. 1.EECS DepartmentUC Berkeley 

Personalised recommendations