An Online Proof-Producing Decision Procedure for Mixed-Integer Linear Arithmetic

  • Sergey Berezin
  • Vijay Ganesh
  • David L. Dill
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2619)


Efficient decision procedures for arithmetic play a very important role in formal verification. In practical examples, however, arithmetic constraints are often mixed with constraints from other theories like the theory of arrays, Boolean satisfiability (SAT), bit-vectors, etc. Therefore, decision procedures for arithmetic are especially useful in combination with other decision procedures. The framework for such a combination is implemented at Stanford in the tool called Cooperating Validity Checker (CVC) [SBD02].

This work augments CVC with a decision procedure for the theory of mixed integer linear arithmetic based on the Omega-test [Pug91] extended to be online and proof producing. These extensions are the most important and challenging part of the work, and are necessary to make the combination efficient in practice.


Decision Procedure Online Algorithm Integer Variable Proof Rule Variable Elimination 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [BDS00]
    C. Barrett, D. Dill, and A. Stump. A Framework for Cooperating Decision Procedures. In David McAllester, editor, 17th International Conference on Computer Aided Deduction, volume 1831 of LNAI, pages 79–97. Springer-Verlag, 2000.Google Scholar
  2. [BDS02a]
    C. Barrett, D. Dill, and A. Stump. A Generalization of Shostak’s Method for Combining Decision Procedures. In 4th International Workshop on Frontiers of Combining Systems (FroCos), 2002.Google Scholar
  3. [BDS02b]
    C. Barrett, D. Dill, and A. Stump. Checking Satisfiability of First-Order Formulas by Incremental Translation to SAT. In 14th International Conference on Computer-Aided Verification, 2002.Google Scholar
  4. [BGD02]
    Sergey Berezin, Vijay Ganesh, and David L. Dill. Online proof-producing decision procedure for mixed-integer linear arithmetic. Unpublished manuscript. URL:, 2002.
  5. [BT97]
    Dimitris Bertsimas and John N. Tsitsiklis. Introduction to Linear Optimization. Athena Scientific, Belmont, Massachusetts, 1997.Google Scholar
  6. [DE73]
    George B. Dantzig and B. Curtis Eaves. Fourier-Motzkin elimination and its dual. Journal of Combinatorial Theory (A), 14:288–297, 1973.MATHCrossRefMathSciNetGoogle Scholar
  7. [DP60]
    Martin Davis and Hilary Putnam. A computing procedure for quantification theory. Journal of the ACM, 7(3):201–215, July 1960. au[GMP]_GMP library for arbitrary precision arithmetic. URL: Scholar
  8. [MMZ+01]
    M. Moskewicz, C. Madigan, Y. Zhaod, L. Zhang, and S. Malik. Chaff: Engineering an Efficient SAT Solver. In 39th Design Automation Conference, 2001.Google Scholar
  9. [Möl98]
    M. Oliver Möller. Solving bit-vector equations-a decision procedure for hardware verification, 1998. Diploma Thesis, available at
  10. [MSS99]
    J. Marques-Silva and K. Sakallah. GRASP: A Search Algorithm for Propositional Satisfiability. IEEE Transactions on Computers, 48(5):506–521, 1999.CrossRefMathSciNetGoogle Scholar
  11. [NL00]
    George C. Necula and Peter Lee. Proof generation in the Touchstone theorem prover. In David McAllester, editor, 17th International Conference on Computer-Aided Deduction, volume 1831 of Lecture Notes in Artificial Intelligence. Springer-Verlag, June 2000. Pittsburgh, Pennsylvania.Google Scholar
  12. [NO79]
    G. Nelson and D. Oppen. Simplification by cooperating decision procedures. ACM Transactions on Programming Languages and Systems, 1(2):245–57, 1979.MATHCrossRefGoogle Scholar
  13. [Pug91]
    William Pugh. The omega test: a fast and practical integer programming algorithm for dependence analysis. In Supercomputing, pages 4–13, 1991.Google Scholar
  14. [RS01]
    H. Ruess and N. Shankar. Deconstructing Shostak. In 16th IEEE Symposium on Logic in Computer Science, 2001.Google Scholar
  15. [SBD02]
    A. Stump, C. Barrett, and D. Dill. CVC: a Cooperating Validity Checker. In 14th International Conference on Computer-Aided Verification, 2002.Google Scholar
  16. [SBDL01]
    A. Stump, C. Barrett, D. Dill, and J. Levitt.ADecision Procedure for an Extensional Theory of Arrays. In 16th IEEE Symposium on Logic in Computer Science, pages 29–37. IEEE Computer Society, 2001.Google Scholar
  17. [Sho84]
    R. Shostak. Deciding combinations of theories. Journal of the Association for Computing Machinery, 31(1):1–12, 1984.MATHMathSciNetGoogle Scholar
  18. [SS96]
    J. P. M. Silva and K.A. Sakallah. GRASP-Anewsearch algorithm for satisfiability. In Proceedings of the ACM/IEEE International Conference on Computer-Aided Design, pages 220–227, 11 1996.Google Scholar
  19. [Stu02]
    A. Stump. Checking Validities and Proofs with CVC and flea. PhD thesis, Stanford University, 2002. In preparation: check for a draft.
  20. [Wil76]
    H. P. Williams. Fourier-Motzkin elimination extension to integer programming problems. Journal of Combinatorial Theory (A), 21:118–123, 1976.MATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Sergey Berezin
    • 1
  • Vijay Ganesh
    • 1
  • David L. Dill
    • 1
  1. 1.Stanford UniversityUSA

Personalised recommendations