skip to main content
10.1145/1529282.1529411acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Reasoning about comprehensions with first-order SMT solvers

Published:08 March 2009Publication History

ABSTRACT

This paper presents a technique for translating common comprehension expressions (sum, count, product, min, and max) into verification conditions that can be tackled by two off-the-shelf first-order SMT solvers. Since a first-order SMT solver does not directly support the bound variables that occur in comprehension expressions, the challenge is to provide a sound axiomatisation that is strong enough to prove interesting programs and, furthermore, that can be used automatically by the SMT solver. The technique has been implemented in the Spec# program verifier. The paper also reports on the experience of using Spec# to verify several challenging programming examples drawn from a textbook by Dijkstra and Feijen.

References

  1. A. Banerjee, M. Barnett, and D. A. Naumann. Boogie meets regions: A verification experience report. In Natarajan Shankar and Jim Woodcock, editors, Verified Software: Theories, Tools, Experiments, VSTTE 2008, volume 5295 of Lecture Notes in Computer Science, pages 177--191. Springer, October 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Barnett, B.-Y. E. Chang, R. DeLine, B. Jacobs, and K. R. M. Leino. Boogie: A modular reusable verifier for object-oriented programs. In F. S. de Boer, M. M. Bonsangue, S. Graf, and W. de Roever, editors, FMCO 2005, volume 4111 of Lecture Notes in Computer Science, pages 364--387. Springer, September 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Barnett, K. R. M. Leino, and W. Schulte. The Spec# programming system: An overview. In G. Barthe, L. Burdy, M. Huisman, J. Lanet, and T. Muntean, editors, CASSIS 2004, volume 3362 of Lecture Notes in Computer Science, pages 49--69. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. G. Carter, R. Monahan, and J. M. Morris. Software refinement with Perfect Developer. In B. K. Aichernig and B. Beckert, editors, SEFM 2005, pages 363--373. IEEE Computer Society, September 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Crocker and J. Carlton. A high productivity tool for formally verified software development. Technical report, Escher Technologies, September 2004. http://www.eschertech.com/papers/pdpaper.pdf.Google ScholarGoogle Scholar
  6. L. de Moura and N. Bjørner. Efficient E-matching for SMT solvers. In F. Pfenning, editor, CADE-21, volume 4603 of Lecture Notes in Computer Science, pages 183--198. Springer, July 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Detlefs, G. Nelson, and J. B. Saxe. Simplify: a theorem prover for program checking. Journal of the ACM, 52(3): 365--473, May 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. W. Dijkstra and W. H. J. Feijen. A method of programming. Addison-Wesley, July 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. K. R. M. Leino and R. Monahan. Automatic verification of textbook programs that use comprehensions. 9th Workshop on Formal Techniques for Java-like Programs, FTfJP 2007, 2007.Google ScholarGoogle Scholar
  10. S. Lerner, T. Millstein, and C. Chambers. Automatically proving the correctness of compiler optimizations. In PLDI 2003, pages 220--231. ACM Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Meng and L. C. Paulson. Translating higher-order problems to first-order clauses. In G. Sutcliffe, R. Schmidt, and S. Schulz, editors, ESCoR 2006: Empirically Successful Computerized Reasoning, volume 192 of CEUR Workshop Proceedings, pages 70--80. http://ceur-ws.org, 2006.Google ScholarGoogle Scholar
  12. G. Nelson. Techniques for program verification. Technical Report CSL-81-10, Xerox PARC, June 1981. The author's PhD thesis.Google ScholarGoogle Scholar
  13. T. Nipkow, L. C. Paulson, and M. Wenzel. Isabelle/HOL: A Proof Assistant for Higher-Order Logic, volume 2283 of Lecture Notes in Computer Science. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Reasoning about comprehensions with first-order SMT solvers

                              Recommendations

                              Comments

                              Login options

                              Check if you have access through your login credentials or your institution to get full access on this article.

                              Sign in
                              • Published in

                                cover image ACM Conferences
                                SAC '09: Proceedings of the 2009 ACM symposium on Applied Computing
                                March 2009
                                2347 pages
                                ISBN:9781605581668
                                DOI:10.1145/1529282

                                Copyright © 2009 ACM

                                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                                Publisher

                                Association for Computing Machinery

                                New York, NY, United States

                                Publication History

                                • Published: 8 March 2009

                                Permissions

                                Request permissions about this article.

                                Request Permissions

                                Check for updates

                                Qualifiers

                                • research-article

                                Acceptance Rates

                                Overall Acceptance Rate1,650of6,669submissions,25%

                              PDF Format

                              View or Download as a PDF file.

                              PDF

                              eReader

                              View online with eReader.

                              eReader