Beaver Bit-vector Decision Procedure

Beaver Bit-vector Decision Procedure

Beaver is a Satisfiability Modulo Theories (SMT) decision procedure for the theory of quantifier-free finite-precision bit-vector arithmetic ( [http://combination.cs.uiowa.edu/smtlib/logics/QF_BV.smt QF_BV] ). Its prototype implementation supports all operators defined under QF_BV, including signed and unsigned non-linear arithmetic operators. Beaver is specially adapted for solving SMT formulae arising out of program analysis (rich in conjunction of linear constraints such as path feasibility queries), computer security (rich in nonlinear arithmetic) and formal equivalence checking (rich Boolean structure).

Beaver Decision Procedure Algorithm

Beaver operates by performing a series of rewrites and simplifications that transform the starting bit-vector arithmetic formula into a Boolean circuit and then into a Boolean satisfiability problem in conjunctive normal form (CNF). The main transformations performed by Beaver include:

# Constant propagation and constraint propagation: Beaver uses an event-driven approach to propagate constants and constraints through the formula to simplify it. A simple form of constraint that appears in many software benchmarks is an equality that uses a fresh variable to name an expression. Both backward and forward propagation are performed.
# Number theoretic rewrite rules: Beaver also uses number-theoretic and other word-level rewrite rules to simplify the formula. These interact with the above step by creating new opportunities for constant/constraint propagation.
# Boolean simplifications using synthesis techniques: instead of directly bit-blasting the formula to CNF, Beaver first creates an and-inverter graph (AIG) representation of the formula, and then uses logic synthesis to perform Boolean simplifications on the AIG before translating the AIG to CNF. Any off-the-shelf SAT solvers () can then be used on the CNF formula.

Authors

* [http://www.eecs.berkeley.edu/~jha Susmit Jha]
* Rhishikesh Limaye
* [http://www.eecs.berkeley.edu/~sseshia/ Sanjit Seshia]

Prototype Availability and Usage

Source code for Beaver is distributed under [http://www.opensource.org/licenses/bsd-license.php BSD license] . This prototype was placed third in the QF_BV category of the [http://www.smtcomp.org/ SMT competition] 2008. It was ranked first among open source QF_BV SMT solvers. See [http://www.smtexec.org/exec/divisionResults.php?jobs=311&division=QF_BV results] . Complete description of the algorithm and prototype tool is available at [http://www.eecs.berkeley.edu/~jha/beaver.html Beaver website] . For more details, visit the [http://uclid.eecs.berkeley.edu/wiki/index.php/Main_Page UCLID group webpage] ] . Current implementation accepts QF_BV formulae in [http://combination.cs.uiowa.edu/smtlib/papers.html SMT-LIB standard Version 1.2] with limited backward compatibility with earlier versions.


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Beaver (disambiguation) — Beaver may refer to:* Beaver, the animal ** American Beaver (Canadian Beaver) ** European Beaver ** Giant Beaver extinct * Beaver hat, a style of headgear (now mostly obsolete) * Leave It to Beaver , an American television sitcom which ran from… …   Wikipedia

  • Uclid — (pronounced IPA|/ˈjuklɪd/, the same as Euclid ) is a decision procedure for CLU logic and can be used as a tool for bounded model checking of infinite state systems.Decision Procedure and Verification ToolUCLID is a tool for verifying models of… …   Wikipedia

  • List of mathematics articles (B) — NOTOC B B spline B* algebra B* search algorithm B,C,K,W system BA model Ba space Babuška Lax Milgram theorem Baby Monster group Baby step giant step Babylonian mathematics Babylonian numerals Bach tensor Bach s algorithm Bachmann–Howard ordinal… …   Wikipedia

  • Satisfiability Modulo Theories — (SMT) problem is a decision problem for logical formulas with respect to combinations of background theories expressed in classical first order logic with equality. Examples of theories typically used in computer science are the theory of real… …   Wikipedia

  • List of terms relating to algorithms and data structures — The [http://www.nist.gov/dads/ NIST Dictionary of Algorithms and Data Structures] is a reference work maintained by the U.S. National Institute of Standards and Technology. It defines a large number of terms relating to algorithms and data… …   Wikipedia

  • Список терминов, относящихся к алгоритмам и структурам данных —   Это служебный список статей, созданный для координации работ по развитию темы.   Данное предупреждение не устанавливается на информационные списки и глоссарии …   Википедия

  • Список терминов — Список терминов, относящихся к алгоритмам и структурам данных   Это сл …   Википедия

  • Algorithmic efficiency — In computer science, efficiency is used to describe properties of an algorithm relating to how much of various types of resources it consumes. Algorithmic efficiency can be thought of as analogous to engineering productivity for a repeating or… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”