A verification tool for ERLANG

  • Lars–Åke Fredlund Email author
  • Dilian Gurov Email author
  • Thomas Noll Email author
  • Mads Dam Email author
  • Thomas Arts Email author
  • Gennady Chugunov Email author
Special section: An experience in the establishment of collaboration between academia and industry


This paper presents an overview of the main results of the project “Verification of ERLANG Programs ”, which is funded by the Swedish Business Development Agency (NUTEK) and by Ericsson within the ASTEC (Advanced Software TEChnology) initiative. Its main outcome is the ERLANG Verification Tool (EVT), a theorem prover which assists in obtaining proofs that ERLANG applications satisfy their correctness requirements formulated as behavioural properties in a modal logic with recursion. We give a summary of the verification framework as supported by EVT, discuss reasoning principles essential for successful proofs such as inductive and compositional reasoning, and an efficient treatment of side-effect-free code. The experiences of applying the tool in an industrial case study are summarised, and an approach for supporting verification in the presence of program libraries is outlined.

EVT is essentially a classical proof assistant, or theorem-proving tool, requiring users to intervene in the proof process at crucial steps such as stating program invariants. However, the tool offers considerable support for automatic proof discovery through higher-level tactics tailored to the particular task of the verification of ERLANG programs. In addition, a graphical interface permits easy navigation through proof tableaux, proof reuse, and meaningful feedback about the current proof state, to assist users in taking informed proof decisions.


Formal methods Software verification Theorem proving 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Armstrong J., Virding R., Wikström C., Williams M.: Concurrent programming in Erlang. Prentice-Hall, London, 2nd edn, 1996 Google Scholar
  2. 2.
    Arts T., Dam M.: Verifying a distributed database lookup manager written in Erlang. In: Wing J.M., Woodcock J., Davies J., (eds.), Formal Methods Europe (FM’99), Lecture Notes in Computer Science, vol. 1708. Springer, Berlin Heidelberg New York, 1999, pp. 682–700 Google Scholar
  3. 3.
    Arts T., Dam M., Fredlund L.-Å., Gurov D.: System description: verification of distributed Erlang programs. In: Proc. CADE’98, Lecture Notes in Computer Science, vol. 1421. Springer, Berlin Heidelberg New York, 1998, pp. 38–41 Google Scholar
  4. 4.
    Arts T., Noll T.: Verifying generic Erlang client–server implementations. In: Proc. 12th Int. Workshop on the Implementation of Functional Languages (IFL’00), Lecture Notes in Computer Science, vol. 2011. Springer, Berlin Heidelberg New York, 2001, pp. 37–52 Google Scholar
  5. 5.
    Bertot Y., Thery L.: A generic approach to building user interfaces for theorem provers. J Symbolic Comput 25(7):161–194, 1998 CrossRefGoogle Scholar
  6. 6.
    Constable R.L., Allen S.F., Bromley H.M., Cleaveland W.R., Cremer J.F., Harper R.W., Howe D.J., Knoblock T.B., Mendler N.P, Panangaden P., Sasaki J.T., Smith S.F.: Implementing mathematics with the Nuprl proof development system. Prentice-Hall, Englewood Cliffs, N.J., USA, 1986 Google Scholar
  7. 7.
    Dam M.: Proving properties of dynamic process networks. Inf Computat 140:95–114, 1998 MathSciNetCrossRefGoogle Scholar
  8. 8.
    Dam M., Fredlund L.-Å., Gurov D.: Toward parametric verification of open distributed systems. In: Langmaack H., Pnueli A., de Roever W.-P., (eds), Compositionality: the significant difference, Lecture Notes in Computer Science, vol. 1536. Springer, Berlin Heidelberg New York, 1998, pp. 150–185 Google Scholar
  9. 9.
    Dam M., Gurov D.: Compositional verification of CCS processes. In: Proc. PSI’99, Lecture Notes in Computer Science, vol. 1705. Springer, Berlin Heidelberg New York, 1999, pp. 247–256 Google Scholar
  10. 10.
    Dam M., Gurov D.: μ-calculus with explicit points and approximations. In: Proc. FICS’2000, 2000 Google Scholar
  11. 11.
    Dowek G., Felty A., Herbelin H., Huet G., Murthy C., Parent C., Paulin-Mohring C., Werner B.: The Coq proof assistant user’s guide version 5.8. Technical Report 154, INRIA, 1993 Google Scholar
  12. 12.
    Fredlund L.-Å.: A Framework for Reasoning about Erlang Code. PhD thesis, Department of Microelectronics and Information Technology, Royal Institute of Technology, 2001. KTH/IT/AVH–01/04–SE Google Scholar
  13. 13.
    Fredlund L.-Å., Gurov D., Noll T.: The Erlang Verification Tool. In: Proc. 7th Int. Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’01), Lecture Notes in Computer Science, vol. 2031. Springer, Berlin Heidelberg New York, 2001, pp. 582–585 Google Scholar
  14. 14.
    Fredlund L.-Å., Gurov D.: A framework for formal reasoning about open distributed systems. In: Proc. ASIAN’99, Lecture Notes in Computer Science, vol. 1742. Springer, Berlin Heidelberg New York, 1999, pp. 87–100 Google Scholar
  15. 15.
    Fröhlich M., Werner M.: The graph visualization system daVinci – a user interface for applications. Technical Report 5/94, Department of Computer Science; Universität Bremen, 1994 Google Scholar
  16. 16.
    Gordon M.J.C., Melham T.F. (eds.): Introduction to HOL: a theorem proving environment for higher order logic. Cambridge University, Cambridge, UK, 1993 Google Scholar
  17. 17.
    Gurov D., Chugunov G.: Verification of Erlang programs: factoring out the side-effect-free fragment. In: Proc. FMICS 2000, GMD Report No.91, pp. 109–122, 2000 Google Scholar
  18. 18.
    Hoare C.A.R.: An axiomatic basis for computer programming. Comm ACM 12:576–580, 1969 CrossRefGoogle Scholar
  19. 19.
    Huch F.: Verification of Erlang programs using abstract interpretation and model checking. In: Proc. ICFP ’99, ACM SIGPLAN Notices, 34(9):261–272, 1999 Google Scholar
  20. 20.
    Kozen D.: Results on the propositional μ-calculus. Theoret Comput Sci 27:333–354, 1983 MathSciNetCrossRefGoogle Scholar
  21. 21.
    Milner R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs, N.J., USA, 1989 Google Scholar
  22. 22.
    Milner R., Tofte M., Harper R.: The definition of Standard ML – revised. MIT, Boston, Mass., USA, 1997 Google Scholar
  23. 23.
    Necula G.C.: Proof–carrying code. In: Proc. POPL’97, pp. 106–119. ACM, 1997 Google Scholar
  24. 24.
    Nilsson H.: Patent Application, 1999 Google Scholar
  25. 25.
    Owre S., Rajan S., Rushby J.M., Shankar N., Srivas M.K. PVS: combining specification, proof checking, model checking. In: Proc. CAV’96, Lecture Notes in Computer Science, vol. 1102. Springer, Berlin Heidelberg New York, 1996, pp. 411–414 Google Scholar
  26. 26.
    Park D.: Finiteness is mu-Ineffable. Theoret Comput Sci 3:173–181, 1976 MathSciNetCrossRefGoogle Scholar
  27. 27.
    Paulson L.C.: Isabelle: a generic theorem prover, Lecture Notes in Computer Science, vol. 828. Springer, Berlin Heidelberg New York, 1994 Google Scholar
  28. 28.
    Plotkin G.D.: A structural approach to operational semantics. Aarhus University report DAIMI FN-19, 1981 Google Scholar
  29. 29.
    Sahlin D., Franzén T., Haridi S.: An intuitionistic predicate logic theorem prover. In: J Logic Comput 2(5):619–656, 1992 Google Scholar
  30. 30.
    Simpson A.: Compositionality via cut-elimination: Hennessy-Milner logic for an arbitrary GSOS. In: Proc. LICS, pp. 420–430. IEEE Computer Society, New York, 1995 Google Scholar
  31. 31.
    Wikström C., Nilsson H., Mattson H.: Mnesia database management system. In: Open Telecom Platform Users Manual. Open Systems, Ericsson Utvecklings, Stockholm, Sweden, 1997 Google Scholar
  32. 32.
    Winskel G.: A note on model checking the modal ν-calculus. Theoret Comput Sci 83:157–187, 1991CrossRefGoogle Scholar

Copyright information

© Springer-Verlag 2002

Authors and Affiliations

  1. 1.Formal Design Techniques GroupSweden Institute of Computer ScienceSweden
  2. 2.Lehrstuhl für Informatik IIAachen University of Technology (RWTH)Germany
  3. 3.Ericsson Computer Science LaboratoryEricsson UtvecklingsSweden

Personalised recommendations