Interpolating Quantifier-Free Presburger Arithmetic

Craig interpolation has become a key ingredient in many symbolic model checkers, serving as an approximative replacement for expensive quantifier elimination. In this paper, we focus on an interpolating decision procedure for the full quantifier-free fragment of Presburger Arithmetic, i.e., linear arithmetic over the integers, a theory which is a good fit for the analysis of software systems. In contrast to earlier procedures based on quantifier elimination and the Omega test, our approach uses integer linear programming techniques: relaxation of interpolation problems to the rationals, and a complete branch-and-bound rule tailored to efficient interpolation. Equations are handled via a dedicated polynomial-time sub-procedure. We have fully implemented our procedure on top of the SMT-solver OpenSMT and present an extensive experimental evaluation.

[1]  Rupak Majumdar,et al.  CSIsat: Interpolation for LA+EUF , 2008, CAV.

[2]  Alberto Griggio,et al.  Interpolant Generation for UTVPI , 2009, CADE.

[3]  Daniel Kroening,et al.  An Interpolating Sequent Calculus for Quantifier-Free Presburger Arithmetic , 2010, Journal of Automated Reasoning.

[4]  Christopher Lynch,et al.  Interpolants for Linear Arithmetic in SMT , 2008, ATVA.

[5]  Edmund M. Clarke,et al.  Efficient Craig interpolation for linear Diophantine (dis)equations and linear modular equations , 2008, Formal Methods Syst. Des..

[6]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[7]  Viorica Sofronie-Stokkermans,et al.  Constraint solving for interpolation , 2007, J. Symb. Comput..

[8]  Kenneth L. McMillan,et al.  An interpolating theorem prover , 2005, Theor. Comput. Sci..

[9]  Roberto Bruttomesso,et al.  The OpenSMT Solver , 2010, TACAS.

[10]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[11]  Volker Weispfenning,et al.  Complexity and uniformity of elimination in Presburger arithmetic , 1997, ISSAC.

[12]  Mohamed Nassim Seghir,et al.  A Lightweight Approach for Loop Summarization , 2011, ATVA.

[13]  William Pugh,et al.  The Omega test: A fast and practical integer programming algorithm for dependence analysis , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[14]  Kousha Etessami,et al.  Analysis of Recursive Game Graphs Using Data Flow Equations , 2004, VMCAI.

[15]  Bruno Dutertre,et al.  A Fast Linear-Arithmetic Solver for DPLL(T) , 2006, CAV.

[16]  Emmanuel Fleury,et al.  Accelerating Interpolation-Based Model-Checking , 2008, TACAS.

[17]  Pavel Pudlák,et al.  Lower bounds for resolution and cutting plane proofs and monotone computations , 1997, Journal of Symbolic Logic.

[18]  Ravi Kannan,et al.  Polynomial Algorithms for Computing the Smith and Hermite Normal Forms of an Integer Matrix , 1979, SIAM J. Comput..

[19]  David K. Smith Theory of Linear and Integer Programming , 1987 .

[20]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

[21]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[22]  Cadence Berkeley Labs Applications of Craig Interpolants in Model Checking , 2005 .

[23]  Renate A. Schmidt Automated Deduction - CADE-22, 22nd International Conference on Automated Deduction, Montreal, Canada, August 2-7, 2009. Proceedings , 2009, CADE.

[24]  Kenneth L. McMillan,et al.  Lazy Abstraction with Interpolants , 2006, CAV.