A Simplex-Based Extension of Fourier-Motzkin for Solving Linear Integer Arithmetic
Abstract
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.
Keywords
Decision Procedure Integer Solution Slack Variable Simplex Algorithm Linear Optimization ProblemPreview
Unable to display preview. Download preview PDF.
References
- 1.Achterberg, T., Koch, T., Martin, A.: MIPLIB 2003. Operations Research Letters 34(4), 361–372 (2006)MathSciNetMATHCrossRefGoogle Scholar
- 2.Banerjee, U.: Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell (1988)CrossRefGoogle Scholar
- 3.Barrett, C., Nieuwenhuis, R., Oliveras, A., Tinelli, C.: Splitting on Demand in SAT Modulo Theories. In: Hermann, M., Voronkov, A. (eds.) LPAR 2006. LNCS (LNAI), vol. 4246, pp. 512–526. Springer, Heidelberg (2006)CrossRefGoogle Scholar
- 4.Bobot, F., Conchon, S., Contejean, E., Iguernelala, M., Lescuyer, S., Mebsout, A.: The Alt-Ergo Automated Theorem Prover, http://alt-ergo.lri.fr
- 5.de Moura, L., Bjørner, N.: Z3, an efficient SMT solver, http://research.microsoft.com/projects/z3
- 6.de Moura, L., Dutertre, B.: Yices: An SMT Solver, http://yices.csl.sri.com
- 7.Dillig, I., Dillig, T., Aiken, A.: Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 233–247. Springer, Heidelberg (2009)CrossRefGoogle Scholar
- 8.Dutertre, B., de Moura, L.: A Fast Linear-Arithmetic Solver for DPLL(T). In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 81–94. Springer, Heidelberg (2006)CrossRefGoogle Scholar
- 9.Farkas, G.: Über die theorie der einfachen ungleichungen. Journal für die Reine und Angewandte Mathematik 124, 1–27 (1902)Google Scholar
- 10.Griggio, A.: A practical approach to satisability modulo linear integer arithmetic. Journal on Satisfiability, Boolean Modeling and Computation 8, 1–27 (2012)Google Scholar
- 11.Griggio, A., Schaafsma, B., Cimatti, A., Sebastiani, R.: MathSAT 5: An SMT Solver for Formal Verification, http://mathsat.fbk.eu//
- 12.Jovanović, D., de Moura, L.: Cutting to the Chase Solving Linear Integer Arithmetic. In: Bjørner, N., Sofronie-Stokkermans, V. (eds.) CADE 2011. LNCS, vol. 6803, pp. 338–353. Springer, Heidelberg (2011)CrossRefGoogle Scholar
- 13.Korovin, K., Voronkov, A.: Solving Systems of Linear Inequalities by Bound Propagation. In: Bjørner, N., Sofronie-Stokkermans, V. (eds.) CADE 2011. LNCS, vol. 6803, pp. 369–383. Springer, Heidelberg (2011)CrossRefGoogle Scholar
- 14.Kroening, D., Strichman, O.: Decision Procedures: An Algorithmic Point of View, 1st edn. Springer Publishing Company, Incorporated (2008)Google Scholar
- 15.Pugh, W.: The Omega test: a fast and practical integer programming algorithm for dependence analysis. In: Proceedings of the 1991 ACM/IEEE Conference on Supercomputing 1991, pp. 4–13. ACM, New York (1991)CrossRefGoogle Scholar
- 16.Schrijver, A.: Theory of linear and integer programming. Wiley-Interscience series in discrete mathematics and optimization. John Wiley & Sons (1998)Google Scholar