Pairwise Reachability Analysis for Higher Order Concurrent Programs by Higher-Order Model Checking

We propose a sound, complete, and automatic method for pairwise reachability analysis of higher-order concurrent programs with recursion, nested locks, joins, and dynamic thread creation. The method is based on a reduction to higher-order model checking (i.e., model checking of trees generated by higher-order recursion schemes). It can be considered an extension of Gawlitz et al.’s work on the join-lock-sensitive reachability analysis for dynamic pushdown networks (DPN) to higher-order programs. To our knowledge, this is the first application of higher-order model checking to sound and complete verification of (reasonably expressive models of) concurrent programs.

[1]  Naoki Kobayashi,et al.  Predicate abstraction and CEGAR for higher-order model checking , 2011, PLDI '11.

[2]  Naoki Kobayashi,et al.  Saturation-Based Model Checking of Higher-Order Recursion Schemes , 2013, CSL.

[3]  Atsushi Igarashi,et al.  Model-Checking Higher-Order Programs with Recursive Types , 2013, ESOP.

[4]  Naoki Kobayashi,et al.  Towards a scalable software model checker for higher-order programs , 2013, PEPM '13.

[5]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[6]  C.-H. Luke Ong,et al.  On Model-Checking Trees Generated by Higher-Order Recursion Schemes , 2006, 21st Annual IEEE Symposium on Logic in Computer Science (LICS'06).

[7]  Helmut Seidl,et al.  Join-Lock-Sensitive Forward Reachability Analysis for Concurrent Programs with Dynamic Process Creation , 2011, VMCAI.

[8]  Jérôme Feret,et al.  Abstract interpretation of mobile systems , 2005, J. Log. Algebraic Methods Program..

[9]  C.-H. Luke Ong,et al.  A Type System Equivalent to the Modal Mu-Calculus Model Checking of Higher-Order Recursion Schemes , 2009, 2009 24th Annual IEEE Symposium on Logic In Computer Science.

[10]  Matthew Hague,et al.  Saturation of Concurrent Collapsible Pushdown Systems , 2013, FSTTCS.

[11]  Andrzej S. Murawski,et al.  Collapsible Pushdown Automata and Recursion Schemes , 2008, LICS.

[12]  C.-H. Luke Ong,et al.  Automatic Verification of Erlang-Style Concurrency , 2013, SAS.

[13]  Naoki Kobayashi,et al.  Model Checking Higher-Order Programs , 2013, JACM.

[14]  C.-H. Luke Ong,et al.  Verifying higher-order functional programs with pattern-matching algebraic data types , 2011, POPL '11.

[15]  Markus Müller-Olm,et al.  Predecessor Sets of Dynamic Pushdown Networks with Tree-Regular Constraints , 2009, CAV.

[16]  Vineet Kahlon,et al.  Reasoning About Threads Communicating via Locks , 2005, CAV.

[17]  G. Ramalingam,et al.  Context-sensitive synchronization-sensitive analysis is undecidable , 2000, TOPL.

[18]  Naoki Kobayashi,et al.  Type Systems for Concurrent Programs , 2002, 10th Anniversary Colloquium of UNU/IIST.

[19]  Jakob Rehof,et al.  Context-Bounded Model Checking of Concurrent Software , 2005, TACAS.

[20]  C.-H. Luke Ong,et al.  Complexity of Model Checking Recursion Schemes for Fragments of the Modal Mu-Calculus , 2009, ICALP.