skip to main content
research-article

Predicate abstraction and CEGAR for higher-order model checking

Published:04 June 2011Publication History
Skip Abstract Section

Abstract

Higher-order model checking (more precisely, the model checking of higher-order recursion schemes) has been extensively studied recently, which can automatically decide properties of programs written in the simply-typed λ-calculus with recursion and finite data domains. This paper formalizes predicate abstraction and counterexample-guided abstraction refinement (CEGAR) for higher-order model checking, enabling automatic verification of programs that use infinite data domains such as integers. A prototype verifier for higher-order functional programs based on the formalization has been implemented and tested for several programs.

References

  1. A. Bakewell and D. R. Ghica. Compositional predicate abstraction from game semantics. In TACAS '09, pages 62--76. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Ball, R. Majumdar, T. Millstein, and S. K. Rajamani. Automatic predicate abstraction of C programs. In PLDI '01, pages 203--213. ACM, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. Ball, T. Millstein, and S. K. Rajamani. Polymorphic predicate abstraction. ACM Transactions on Programming Languages and Systems, 27(2):314--343, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T. Ball and S. K. Rajamani. The SLAM project: debugging system software via static analysis. In POPL '02, pages 1--3. ACM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Barrett and C. Tinelli. CVC3. In CAV '07, volume 4590 of LNCS, pages 298--302. Springer, July 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. Beyer, D. Zufferey, and R. Majumdar. CSIsat: Interpolation for LA EUF (tool paper). In CAV '08, volume 5123 of LNCS, pages 304--308, July 2008. Google ScholarGoogle Scholar
  7. W.-N. Chin and S.-C. Khoo. Calculating sized types. Higher-Order and Symbolic Computation, 14(2-3):261--300, September 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement for symbolic model checking. Journal of the ACM, 50(5):752--794, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Cousot and N. Halbwachs. Automatic discovery of linear restraints among variables of a program. In POPL '78, pages 84--96. ACM, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. W. Damm. The IO- and OI-hierarchies. Theoretical Computer Science, 20(2):95--207, 1982.Google ScholarGoogle ScholarCross RefCross Ref
  11. C. Flanagan. Hybrid type checking. In POPL '06, pages 245--256. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Graf and H. Saïdi. Construction of abstract state graphs with PVS. In CAV '97, volume 1254 of LNCS, pages 72--83. Springer, June 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Heizmann, J. Hoenicke, and A. Podelski. Nested interpolants. In POPL '10, pages 471--482. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. T. A. Henzinger, R. Jhala, R. Majumdar, and K. L. McMillan. Abstractions from proofs. In POPL '04, pages 232--244. ACM, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In POPL '02, pages 58--70. ACM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Jhala and R. Majumdar. Counterexample refinement for functional programs. Manuscript, available from http://www.cs.ucla.edu/ rupak/Papers/CEGARFunctional.ps, 2009.Google ScholarGoogle Scholar
  17. R. Jhala, R. Majumdar, and A. Rybalchenko. Refinement type inference via abstract interpretation. arXiv:1004.2884v1, 2010.Google ScholarGoogle Scholar
  18. R. Jhala and K. L. McMillan. A practical and complete approach to predicate refinement. In TACAS '06, volume 3920 of LNCS, pages 459--473. Springer, 2006. Google ScholarGoogle Scholar
  19. T. Knapik, D. Niwinski, and P. Urzyczyn. Higher-order pushdown trees are easy. In FoSSaCS '02, volume 2303 of LNCS, pages 205--222. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. N. Kobayashi. Model-checking higher-order functions. In PPDP '09, pages 25--36. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. N. Kobayashi. TRecS. http://www.kb.ecei.tohoku.ac.jp/koba/trecs/, 2009.Google ScholarGoogle Scholar
  22. N. Kobayashi. Types and higher-order recursion schemes for verification of higher-order programs. In POPL '09, pages 416--428. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. N. Kobayashi. A practical linear time algorithm for trivial automata model checking of higher-order recursion schemes. In FoSSaCS '11. Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. N. Kobayashi and C.-H. L. Ong. A type system equivalent to the modal mu-calculus model checking of higher-order recursion schemes. In LICS '09, pages 179--188. IEEE, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. N. Kobayashi, R. Sato, and H. Unno. Predicate abstraction and CEGAR for higher-order model checking. An extended version, available from http://www.kb.ecei.tohoku.ac.jp/ uhiro/, 2011.Google ScholarGoogle Scholar
  26. N. Kobayashi, N. Tabuchi, and H. Unno. Higher-order multi-parameter tree transducers and recursion schemes for program verification. In POPL '10, pages 495--508. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. K. L. McMillan. An interpolating theorem prover. Theoretical Computer Science, 345(1):101--121, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. C.-H. L. Ong. On model-checking trees generated by higher-order recursion schemes. In LICS '06, pages 81--90. IEEE, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. C.-H. L. Ong and S. J. Ramsay. Verifying higher-order functional programs with pattern-matching algebraic data types. In POPL '11, pages 587--598. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. J. C. Reynolds. Definitional interpreters for higher-order programming languages. In Proceedings of the ACM annual conference - Volume 2, pages 717--740. ACM, 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. P. Rondon, M. Kawaguchi, and R. Jhala. Liquid types. In PLDI '08. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. T. Terauchi. Dependent types from counterexamples. In POPL '10, pages 119--130. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. H. Unno and N. Kobayashi. Dependent type inference with interpolants. In PPDP '09, pages 277--288. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. H. Unno, N. Tabuchi, and N. Kobayashi. Verification of tree-processing programs via higher-order model checking. In APLAS '10, volume 6461 of LNCS, pages 312--327. Springer, October/December 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. H. Xi and F. Pfenning. Dependent types in practical programming. In POPL '99, pages 214--227. ACM, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Predicate abstraction and CEGAR for higher-order model checking

              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

              Full Access

              • Published in

                cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 46, Issue 6
                PLDI '11
                June 2011
                652 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1993316
                Issue’s Table of Contents
                • cover image ACM Conferences
                  PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation
                  June 2011
                  668 pages
                  ISBN:9781450306638
                  DOI:10.1145/1993498
                  • General Chair:
                  • Mary Hall,
                  • Program Chair:
                  • David Padua

                Copyright © 2011 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 4 June 2011

                Check for updates

                Qualifiers

                • research-article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!