Verifying Generic Erlang Client—Server Implementations
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.
KeywordsServer Process Operational Semantic Transition Rule Logical Formula Proof Rule
Unable to display preview. Download preview PDF.
- 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
- AN00.T. Arts and T. Noll. Verifying generic Erlang client-server implementations. Technical Report 00-08, Aachen University of Technology, Aachen, Germany, 2000. ftp://ftp.informatik.rwth-aachen.de/pub/reports/2000/00-08.ps.gz.
- 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
- 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
- Fre.L.-å. Fredlund. Towards a semantics for Erlang. Unpublished manuscript. Swedish Institute of Computer Science.Google Scholar
- 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
- 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
- SDL93.CCITT Specification andDescription Language (SDL). Technical Report 03/93, International Telecommunication Union, 1993. http://www.itu.int/.