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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- E. W. Dijkstra and W. H. J. Feijen. A method of programming. Addison-Wesley, July 1988. Google ScholarDigital Library
- 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 Scholar
- S. Lerner, T. Millstein, and C. Chambers. Automatically proving the correctness of compiler optimizations. In PLDI 2003, pages 220--231. ACM Press, 2003. Google ScholarDigital Library
- 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 Scholar
- G. Nelson. Techniques for program verification. Technical Report CSL-81-10, Xerox PARC, June 1981. The author's PhD thesis.Google Scholar
- 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 ScholarDigital Library
Index Terms
- Reasoning about comprehensions with first-order SMT solvers
Recommendations
Validating SMT solvers via semantic fusion
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationWe introduce Semantic Fusion, a general, effective methodology for validating Satisfiability Modulo Theory (SMT) solvers. Our key idea is to fuse two existing equisatisfiable (i.e., both satisfiable or unsatisfiable) formulas into a new formula that ...
Extending SMT Solvers to Higher-Order Logic
Automated Deduction – CADE 27AbstractSMT solvers have throughout the years been able to cope with increasingly expressive formulas, from ground logics to full first-order logic (FOL). In contrast, the extension of SMT solvers to higher-order logic (HOL) is mostly unexplored. We ...
SMT solvers: new oracles for the HOL theorem prover
This paper describes an integration of Satisfiability Modulo Theories (SMT) solvers with the HOL4 theorem prover. Proof obligations are passed from the interactive HOL4 prover to the SMT solver, which can often prove them automatically. This makes state-...
Comments