Verifying Generic Erlang Client—Server Implementations

  • Thomas Arts
  • Thomas Noll
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2011)


The Erlang Verification Tool is an interactive theorem prover tailored to verify properties of distributed systems implemented in Erlang. It is being developed by the Swedish Institute of Computer Science in collaboration with Ericsson.

In this paper we present an extension of this tool which allows to reason about the Erlang code on an architectural level. We present a verification methodfor client-server systems designed using the generic server implementation of the Open Telecom Platform. For this purpose, we specify a set of transition rules which characterize the abstract behaviour of the generic server functions. By this means we can reason in a partitioned w ay about any client-server application without having to consider the concrete implementation details of the generic part, which simplifies proofs dramatically.

The generic server architecture is just an example, and the technique extends to many other generic components. Moreover, the idea of considering standard components to reason on the architectural level of a concrete implementation can also be explored when using other verifications tools for Erlang or in the context of another language.


Server Process Operational Semantic Transition Rule Logical Formula Proof Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. ADFG98.
    T. Arts, M. Dam, L.-å. Fredlund, and D. Gurov. System description: Verification of distributed Erlang programs. In Proc. CADE’98, volume 1421, pages 38–41. Springer-Verlag, 1998.Google Scholar
  2. AN00.
    T. Arts and T. Noll. Verifying generic Erlang client-server implementations. Technical Report 00-08, Aachen University of Technology, Aachen, Germany, 2000.
  3. AVWW96.
    J.L. Armstrong, S.R. Virding, M.C. Williams, and C. Wikström. Concurrent Programming in Erlang. Prentice Hall International, 2nd edition, 1996.Google Scholar
  4. CGL94.
    E.M. Clarke, O. Grumberg, and D.E. Long. Model checking andabstraction. ACM Transactions on Programming Languages and Systems, 16(5):1512–1542, 1994.CrossRefGoogle Scholar
  5. CW96.
    E.M. Clarke and J.M. Wing. Formal methods: State of the art and future directions. Technical Report CMU-CS-96-178, Carnegie Mellon University, Pittsburg, USA, 1996.Google Scholar
  6. DFG98.
    M. Dam, L.-å. Fredlund, and D. Gurov. Toward parametric verification of open distributed systems. In Compositionality: the Significant Difference, volume 1536 of Lecture Notes in Computer Science, pages 150–185. Springer-Verlag, 1998.CrossRefGoogle Scholar
  7. Fre.
    L.-å. Fredlund. Towards a semantics for Erlang. Unpublished manuscript. Swedish Institute of Computer Science.Google Scholar
  8. Huc99.
    F. Huch. Verification of Erlang programs using abstract interpretation andmo del checking.ACM SIGPLAN Notices, 34(9):261–272, 1999. Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP’ 99).Google Scholar
  9. LLNT99.
    M. Lange, M. Leucker, T. Noll, and S. Tobies. Truth-a verification platform for concurrent systems. In Tool Support for System Specification, Development, and Verification, Advances in Computing Science. Springer-Verlag Wien New York, 1999.Google Scholar
  10. SDL93.
    CCITT Specification andDescription Language (SDL). Technical Report 03/93, International Telecommunication Union, 1993.

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Thomas Arts
    • 1
  • Thomas Noll
    • 2
  1. 1.Computer Science LabEricssonSweden
  2. 2.Department of TeleinformaticsRoyal Institute of Technology (KTH)KistaSweden

Personalised recommendations