A Simplex-Based Extension of Fourier-Motzkin for Solving Linear Integer Arithmetic

This paper describes a novel decision procedure for quantifier-free linear integer arithmetic. Standard techniques usually relax the initial problem to the rational domain and then proceed either by projection (e.g.Omega-Test) or by branching/cutting methods (branch-and-bound, branch-and-cut, Gomory cuts). Our approach tries to bridge the gap between the two techniques: it interleaves an exhaustive search for a model with bounds inference. These bounds are computed provided an oracle capable of finding constant positive linear combinations of affine forms. We also show how to design an efficient oracle based on the Simplex procedure. Our algorithm is proved sound, complete, and terminating and is implemented in the alt-ergo theorem prover. Experimental results are promising and show that our approach is competitive with state-of-the-art SMT solvers.

[1]  Nikolaj Bjørner,et al.  Automated Deduction - CADE-23 - 23rd International Conference on Automated Deduction, Wroclaw, Poland, July 31 - August 5, 2011. Proceedings , 2011, CADE.

[2]  J. Farkas Theorie der einfachen Ungleichungen. , 1902 .

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

[4]  Isil Dillig,et al.  Cuts from proofs: a complete and practical technique for solving linear inequalities over integers , 2009, Formal Methods Syst. Des..

[5]  Leonardo Mendonça de Moura,et al.  Cutting to the Chase , 2011, Journal of Automated Reasoning.

[6]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

[7]  H. P. Williams THEORY OF LINEAR AND INTEGER PROGRAMMING (Wiley-Interscience Series in Discrete Mathematics and Optimization) , 1989 .

[8]  Thorsten Koch,et al.  Konrad-zuse-zentrum F ¨ Ur Informationstechnik Berlin Miplib 2003 , 2022 .

[9]  Alberto Griggio,et al.  A Practical Approach to Satisability Modulo Linear Integer Arithmetic , 2012, J. Satisf. Boolean Model. Comput..

[10]  Evelyne Contejean,et al.  Software - The Alt-Ergo theorem prover , 2010 .

[11]  S. Janson,et al.  Wiley‐Interscience Series in Discrete Mathematics and Optimization , 2011 .

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

[13]  Andrei Voronkov,et al.  Solving Systems of Linear Inequalities by Bound Propagation , 2011, CADE.

[14]  Daniel Kroening,et al.  Decision Procedures - An Algorithmic Point of View , 2008, Texts in Theoretical Computer Science. An EATCS Series.

[15]  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).

[16]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

[17]  Cesare Tinelli,et al.  Splitting on Demand in SAT Modulo Theories , 2006, LPAR.

[18]  Alexander Schrijver,et al.  Theory of linear and integer programming , 1986, Wiley-Interscience series in discrete mathematics and optimization.