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.
Supplemental Material
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- N. D. Jones. Flow analysis of lambda expressions. In ICALP'81, volume 115 of LNCS, pages 114--128. Springer, 1981. Google Scholar
Digital Library
- N. Kobayashi. Types and higher-order recursion schemes for verification of higher-order programs. In POPL'09, pages 416--428. ACM, 2009. Google Scholar
Digital Library
- N. Kobayashi. Model-checking higher-order functions. In PPDP'09, pages 25--36. ACM, 2009. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- D. E. Muller and P. E. Schupp. Alternating automata on infinite trees. Theoretical Compututer Science, 54(2-3):267--276, 1987. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- C.-H. L. Ong. Models of higher-order computation: Recursion schemes and collapsible pushdown automata. In LLRS'10, pages 263--299. 2010.Google Scholar
- 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 Scholar
Digital Library
- J. Plevyak and A. A. Chien. Precise concrete type inference for objectoriented languages. In OOPSLA'94, pages 324--340. ACM, 1994. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- S. van Bakel. Strict intersection types for the lambda calculus. ACM Computing Surveys, 43(3):20, 2011. Google Scholar
Digital Library
Index Terms
A type-directed abstraction refinement approach to higher-order model checking
Recommendations
A type-directed abstraction refinement approach to higher-order model checking
POPL '14: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesThe 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 ...
Predicate abstraction and CEGAR for higher-order model checking
PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and ImplementationHigher-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 ...
Predicate abstraction and CEGAR for higher-order model checking
PLDI '11Higher-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 ...







Comments