English

Automatic Verification of Erlang-Style Concurrency

Programming Languages 2016-01-11 v1

Abstract

This paper presents an approach to verify safety properties of Erlang-style, higher-order concurrent programs automatically. Inspired by Core Erlang, we introduce Lambda-Actor, a prototypical functional language with pattern-matching algebraic data types, augmented with process creation and asynchronous message-passing primitives. We formalise an abstract model of Lambda-Actor programs called Actor Communicating System (ACS) which has a natural interpretation as a vector addition system, for which some verification problems are decidable. We give a parametric abstract interpretation framework for Lambda-Actor and use it to build a polytime computable, flow-based, abstract semantics of Lambda-Actor programs, which we then use to bootstrap the ACS construction, thus deriving a more accurate abstract model of the input program. We have constructed Soter, a tool implementation of the verification method, thereby obtaining the first fully-automatic, infinite-state model checker for a core fragment of Erlang. We find that in practice our abstraction technique is accurate enough to verify an interesting range of safety properties. Though the ACS coverability problem is Expspace-complete, Soter can analyse these verification problems surprisingly efficiently.

Keywords

Cite

@article{arxiv.1303.2201,
  title  = {Automatic Verification of Erlang-Style Concurrency},
  author = {Emanuele D'Osualdo and Jonathan Kochems and C. -H. Luke Ong},
  journal= {arXiv preprint arXiv:1303.2201},
  year   = {2016}
}

Comments

12 pages plus appendix, 4 figures, 1 table. The tool is available at http://mjolnir.cs.ox.ac.uk/soter/

R2 v1 2026-06-21T23:39:17.070Z