Interpolating bit-vector formulas using uninterpreted predicates and Presburger arithmetic
Open Access
- 12 May 2021
- journal article
- research article
- Published by Springer Nature in Formal Methods in System Design
- Vol. 57 (2) , 121-156
Abstract
The inference of program invariants over machine arithmetic, commonly called bit-vector arithmetic, is an important problem in verification. Techniques that have been successful for unbounded arithmetic, in particular Craig interpolation, have turned out to be difficult to generalise to machine arithmetic: existing bit-vector interpolation approaches are based either on eager translation from bit-vectors to unbounded arithmetic, resulting in complicated constraints that are hard to solve and interpolate, or on bit-blasting to propositional logic, in the process losing all arithmetic structure. We present a new approach to bit-vector interpolation, as well as bit-vector quantifier elimination (QE), that works by lazy translation of bit-vector constraints to unbounded arithmetic. Laziness enables us to fully utilise the information available during proof search (implied by decisions and propagation) in the encoding, and this way produce constraints that can be handled relatively easily by existing interpolation and QE procedures for Presburger arithmetic. The lazy encoding is complemented with a set of native proof rules for bit-vector equations and non-linear (polynomial) constraints, this way minimising the number of cases a solver has to consider. We also incorporate a method for handling concatenations and extractions of bit-vector efficiently.Keywords
Funding Information
- Mälardalen University
This publication has 39 references indexed in Scilit:
- Generating Non-linear Interpolants by Semidefinite ProgrammingLecture Notes in Computer Science, 2013
- Quantifier-Free Interpolation of a Theory of ArraysLogical Methods in Computer Science, 2012
- An Interpolating Sequent Calculus for Quantifier-Free Presburger ArithmeticJournal of Automated Reasoning, 2011
- SAT Modulo Linear Arithmetic for Solving Polynomial ConstraintsJournal of Automated Reasoning, 2010
- Solving SAT and SAT Modulo TheoriesJournal of the ACM, 2006
- Bruno Buchberger’s PhD thesis 1965: An algorithm for finding the basis elements of the residue class ring of a zero dimensional polynomial idealJournal of Symbolic Computation, 2006
- An interpolating theorem proverTheoretical Computer Science, 2005
- Solving Polynomial Systems Using a Branch and Prune ApproachSIAM Journal on Numerical Analysis, 1997
- Presburger arithmetic with unary predicates is Π11 completeThe Journal of Symbolic Logic, 1991
- Linear reasoning. A new form of the Herbrand-Gentzen theoremThe Journal of Symbolic Logic, 1957