skip to main content
research-article

A type-directed abstraction refinement approach to higher-order model checking

Published:08 January 2014Publication History
Skip Abstract Section

Abstract

The trivial-automaton model checking problem for higher-order recursion schemes has become a widely studied object in connection with the automatic verification of higher-order programs. The problem is formidably hard: despite considerable progress in recent years, no decision procedures have been demonstrated to scale robustly beyond recursion schemes that comprise more than a few hundred rewrite rules. We present a new, fixed-parameter polynomial time algorithm, based on a novel, type directed form of abstraction refinement in which behaviours of a scheme are distinguished by the abstraction according to the intersection types that they inhabit (the properties that they satisfy). Unlike other intersection type approaches, our algorithm reasons both about acceptance by the property automaton and acceptance by its dual, simultaneously, in order to minimize the amount of work done by converging on the solution to a problem instance from both sides. We have constructed Preface, a prototype implementation of the algorithm, and assembled an extensive body of evidence to demonstrate empirically that the algorithm readily scales to recursion schemes of several thousand rules, well beyond the capabilities of current state-of-the-art higher-order model checkers.

Skip Supplemental Material Section

Supplemental Material

d1_left_t5.mp4

References

  1. T. Ball and S. K. Rajamani. Bebop: A symbolic model checker for boolean programs. In SPIN'00, volume 1885 of LNCS, pages 113--130. Springer, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. H. Barendregt, M. Coppo, and M. Dezani-Ciancaglini. A filter lambda model and the completeness of type assignment. Journal of Symbolic Logic, 48(4):931--940, 1983.Google ScholarGoogle ScholarCross RefCross Ref
  3. C. H. Broadbent and N. Kobayashi. Saturation-based model checking of higher-order recursion schemes. In CSL'13, volume 23 of LIPIcs, pages 129--148. Schloss Dagstuhl, 2013.Google ScholarGoogle Scholar
  4. C. H. Broadbent, A. Carayol, M. Hague, and O. Serre. A saturation method for collapsible pushdown systems. In ICALP'12, volume 7392 of Lecture Notes in Computer Science, pages 165--176. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. H. Broadbent, A. Carayol, M. Hague, and O. Serre. C-SHORe: a collapsible approach to verifying higher-order programs. In ICFP'13, pages 13--24. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. E. M. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In CAV'00, pages 154--169. Springer-Verlag, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Coppo and M. Dezani. An extension of the basic functionality theory for the lambda-calculus. Notre Dame Journal of Formal Logic, 21(4):685--693, 1980.Google ScholarGoogle ScholarCross RefCross Ref
  8. M. Hague, A. S. Murawski, C.-H. L. Ong, and O. Serre. Collapsible pushdown automata and recursion schemes. In LICS'08, pages 452--461. IEEE Computer Society, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Jagannathan, S. Weeks, and A. K. Wright. Type-directed flow analysis for typed intermediate languages. In SAS'97, volume 1302 of Lecture Notes in Computer Science, pages 232--249. Springer, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. N. D. Jones. Flow analysis of lambda expressions. In ICALP'81, volume 115 of LNCS, pages 114--128. Springer, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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
  12. N. Kobayashi. Model-checking higher-order functions. In PPDP'09, pages 25--36. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. N. Kobayashi. A practical linear time algorithm for trivial automata model checking of higher-order recursion schemes. In FOSSACS 2011, volume 6604 of Lecture Notes in Computer Science, pages 260--274. Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 2009, pages 179--188. IEEE Computer Society, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. N. Kobayashi and C.-H. L. Ong. Complexity of model checking recursion schemes for fragments of the modal mu-calculus. Logical Methods in Computer Science, 7(4), 2011.Google ScholarGoogle Scholar
  16. N. Kobayashi, N. Tabuchi, and H. Unno. Higher-order multiparameter tree transducers and recursion schemes for program verification. In POPL'10, pages 495--508, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. N. Kobayashi, R. Sato, and H. Unno. Predicate abstraction and CEGAR for higher-order model checking. In PLDI'11, pages 222--233. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. E. Muller and P. E. Schupp. Alternating automata on infinite trees. Theoretical Compututer Science, 54(2-3):267--276, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. P. Neatherway, C.-H. L. Ong, and S. J. Ramsay. A traversal-based algorithm for higher-order model checking. In ICFP'12, pages 353--364. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. C.-H. L. Ong. On model-checking trees generated by higher-order recursion schemes. In LICS'06, pages 81--90. IEEE Comp. Soc., 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C.-H. L. Ong. Models of higher-order computation: Recursion schemes and collapsible pushdown automata. In LLRS'10, pages 263--299. 2010.Google ScholarGoogle Scholar
  22. 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
  23. J. Plevyak and A. A. Chien. Precise concrete type inference for objectoriented languages. In OOPSLA'94, pages 324--340. ACM, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. S. J. Ramsay, R. P. Neatherway, and C.-H. L. Ong. A type-directed abstraction refinement approach to higher-order model checking. Long version: http://mjolnir.cs.ox.ac.uk/papers/preface.pdf.Google ScholarGoogle Scholar
  25. R. Sato, H. Unno, and N. Kobayashi. Towards a scalable software model checker for higher-order programs. In PEPM'13, pages 53--62. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Y. Tobita, T. Tsukada, and N. Kobayashi. Exact flow analysis by higher-order model checking. In FLOPS'12, volume 7294 of LNCS, pages 275--289. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. S. van Bakel. Strict intersection types for the lambda calculus. ACM Computing Surveys, 43(3):20, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A type-directed abstraction refinement approach to 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 49, Issue 1
                POPL '14
                January 2014
                661 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/2578855
                Issue’s Table of Contents
                • cover image ACM Conferences
                  POPL '14: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
                  January 2014
                  702 pages
                  ISBN:9781450325448
                  DOI:10.1145/2535838

                Copyright © 2014 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 8 January 2014

                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!