skip to main content
10.1145/2414639.2414658acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Soter: an automatic safety verifier for erlang

Published:21 October 2012Publication History

ABSTRACT

This paper presents Soter, a fully-automatic program analyser and verifier for Erlang modules. The fragment of Erlang accepted by Soter includes the higher-order functional constructs and all the key features of actor concurrency, namely, dynamic and possibly unbounded spawning of processes and asynchronous message passing. Soter uses a combination of static analysis and infinite-state model checking to verify safety properties specified by the user. Given an Erlang module and a set of properties, Soter first extracts an abstract (approximate but sound) model in the form of an actor communicating system (ACS), and then checks if the properties are satisfied using a Petri net coverability checker, BFC. To our knowledge, Soter is the first fully-automatic, infinite-state model checker for a large fragment of Erlang. We find that in practice our abstraction technique is accurate enough to verify an interesting range of safety properties such as mutual-exclusion and boundedness of mailboxes. Though the ACS coverability problem is Expspace-complete, Soter can analyse these problems surprisingly efficiently.

References

  1. G. Agha. Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge, MA, USA, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Armstrong. Erlang. CACM, 53(9):68, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. F. Cesarini and S. Thompson. Erlang Programming - A Concurrent Approach to Software Development. O'Reilly, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Christakis and K. Sagonas. Detection of asynchronous message passing errors using static analysis. PADL, pages 5--18, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. D'Osualdo, J. Kochems, and C.-H. L. Ong. Automatic verification of Erlang-style concurrency. Technical report, University of Oxford DCS, 2012. http://mjolnir.cs.ox.ac.uk/soter/soterpaper.pdf.Google ScholarGoogle Scholar
  6. L. Fredlund and H. Svensson. McErlang: a model checker for a distributed functional programming language. In ICFP, pages 125--136, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Q. Guo and J. Derrick. Verification of timed Erlang/OTP components using the process algebra μCRL. In Erlang Workshop, pages 55--64, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. A. Kaiser, D. Kroening, and T. Wahl. Efficient coverability analysis by proof minimization. In CONCUR, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. Lindahl and K. Sagonas. Practical type inference based on success typings. In PPDP, pages 167--178, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Soter: an automatic safety verifier for erlang

            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
            • Published in

              cover image ACM Conferences
              AGERE! 2012: Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions
              October 2012
              150 pages
              ISBN:9781450316309
              DOI:10.1145/2414639

              Copyright © 2012 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 21 October 2012

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate19of35submissions,54%

              Upcoming Conference

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader