A Traversal-based Algorithm for Higher-Order Model Checking

被引:13
|
作者
Neatherway, Robin P. [1 ]
Ong, C. -H. Luke [1 ]
Ramsay, Steven J. [1 ]
机构
[1] Univ Oxford, Oxford OX1 2JD, England
基金
英国工程与自然科学研究理事会;
关键词
Algorithms; Verification; Model-checking; Higher-order Programs; RECURSION SCHEMES; ABSTRACTION;
D O I
10.1145/2398856.2364578
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Higher-order model checking-the model checking of trees generated by higher-order recursion schemes (HORS)-is a natural generalisation of finite-state and pushdown model checking. Recent work has shown that it can serve as a basis for software model checking for functional languages such as ML and Haskell. In this paper, we introduce higher-order recursion schemes with cases (HORSC), which extend HORS with a definition-by-cases construct (to express program branching based on data) and non-determinism (to express abstractions of behaviours). This paper is a study of the universal HORSC model checking problem for deterministic trivial automata: does the automaton accept every tree in the tree language generated by the given HORSC? We first characterise the model checking problem by an intersection type system extended with a carefully restricted form of union types. We then present an algorithm for deciding the model checking problem, which is based on the notion of traversals induced by the fully abstract game semantics of these schemes, but presented as a goal-directed construction of derivations in the intersection and union type system. We view HORSC model checking as a suitable backend engine for an approach to verifying functional programs. We have implemented the algorithm in a tool called TRAVMC, and demonstrated its effectiveness on a test suite of programs, including abstract models of functional programs obtained via an abstraction-refinement procedure from pattern-matching recursion schemes.
引用
收藏
页码:353 / 364
页数:12
相关论文
共 50 条
  • [1] Higher-Order Model Checking
    Ong, C. -H. Luke
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2012, (77): : 13 - 13
  • [2] Model Checking Higher-Order Programs
    Kobayashi, Naoki
    [J]. JOURNAL OF THE ACM, 2013, 60 (03)
  • [3] Higher-Order Model Checking: An Overview
    Ong, Luke
    [J]. 2015 30TH ANNUAL ACM/IEEE SYMPOSIUM ON LOGIC IN COMPUTER SCIENCE (LICS), 2015, : 1 - 15
  • [4] Higher-Order Model Checking in Direct Style
    Terao, Taku
    Tsukada, Takeshi
    Kobayashi, Naoki
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2016, 2016, 10017 : 295 - 313
  • [5] Model-Checking Higher-Order Functions
    Kobayashi, Naoki
    [J]. PPDP'09: PROCEEDINGS OF THE 11TH INTERNATIONAL ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, 2009, : 25 - 36
  • [6] THE COMPLEXITY OF MODEL CHECKING HIGHER-ORDER FIXPOINT LOGIC
    Axelsson, Roland
    Lange, Martin
    Somla, Rafal
    [J]. Logical Methods in Computer Science, 2007, 3 (02)
  • [7] 10 Years of the Higher-Order Model Checking Project
    Kobayashi, Naoki
    [J]. PROCEEDINGS OF THE 21ST INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING (PPDP 2019), 2019,
  • [8] Predicate Abstraction and CEGAR for Higher-Order Model Checking
    Kobayashi, Naoki
    Sato, Ryosuke
    Unno, Hiroshi
    [J]. ACM SIGPLAN NOTICES, 2011, 46 (06) : 222 - 233
  • [9] Higher-Order Model Checking: From Theory to Practice
    Kobayashi, Naoki
    [J]. 26TH ANNUAL IEEE SYMPOSIUM ON LOGIC IN COMPUTER SCIENCE (LICS 2011), 2011, : 219 - 224
  • [10] Indexed linear logic and higher-order model checking
    Grellois, Charles
    Mellies, Paul-Andre
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2015, (177): : 43 - 52