Beaver: Engineering an Efficient SMT Solver for Bit-Vector Arithmetic
Beaver: Engineering an Efficient SMT Solver for Bit-Vector Arithmetic
复制标题
Beaver:为位向量算术设计高效的 SMT 求解器
DOI:
10.1007/978-3-642-02658-4_53
复制
发表时间:
2009
影响因子:
--
通讯作者:
S. Seshia
中科院分区:
文献类型:
--
作者:
Susmit Jha;Rhishikesh Limaye;S. Seshia
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.