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.


  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