Mind the Gap: Bit-vector Interpolation recast over Linear Integer Arithmetic
Open Access
- 17 April 2020
- book chapter
- Published by Springer Nature
- Vol. 12078, 79-96
Abstract
Much of an interpolation engine for bit-vector (BV) arithmetic can be constructed by observing that BV arithmetic can be modeled with linear integer arithmetic (LIA). Two BV formulae can thus be translated into two LIA formulae and then an interpolation engine for LIA used to derive an interpolant, albeit one expressed in LIA. The construction is completed by back-translating the LIA interpolant into a BV formula whose models coincide with those of the LIA interpolant. This paper develops a back-translation algorithm showing, for the first time, how back-translation can be universally applied, whatever the LIA interpolant. This avoids the need for deriving a BV interpolant by bit-blasting the BV formulae, as a backup process when back-translation fails. The new back-translation process relies on a novel geometric technique, called gapping, the correctness and practicality of which are demonstrated.Keywords
This publication has 30 references indexed in Scilit:
- Bit-Vector Interpolation and Quantifier Elimination by Lazy Reduction2018
- Result Certification of Static Program Analysers with Automated Theorem Provers2014
- The MathSAT5 SMT Solver2013
- Beautiful Interpolants2013
- Kratos – A Software Model Checker for SystemCLecture Notes in Computer Science, 2011
- Interpolant Generation for UTVPILecture Notes in Computer Science, 2009
- Efficient Interpolant Generation in Satisfiability Modulo Theories2008
- The software model checker BlastInternational Journal on Software Tools for Technology Transfer, 2007
- Deciding Bit-Vector Arithmetic with Abstraction2007
- A Decision Procedure for Bit-Vector Arithmetic1998