Verification of Timed Erlang Programs Using McErlang

  • Clara Benac Earle
  • Lars-Åke Fredlund
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7273)

Abstract

There is a large number of works that apply model checking to timed specifications, however, there are far fewer attempts at model checking concurrent programs for which correct timed behaviour is crucial. In this work we explore the formal verification of timed programs written in the Erlang concurrent programming language, in its full complexity, using the McErlang model checker.

We have extended the McErlang model checker with a timed semantics, similar to the timed semantics Lamport has developed for TLA and TLC, but with a few notable differences. In the paper we present the resulting semantics, its implementation in McErlang, and evaluate it using a number of examples. Among the examples is a process supervision component for controlling the processes in an Erlang application, which provides fault-tolerance.

Keywords

Model Checker State Graph Linear Temporal Logic Clock Reference Child Process 
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.

References

  1. 1.
    Alur, R., Dill, D.L.: A theory of timed automata. TCS 126, 183–235 (1994)MathSciNetMATHCrossRefGoogle Scholar
  2. 2.
    Ouaknine, J.: Discrete analysis of continuous behaviour in real-time concurrent systems. PhD thesis, Oxford University (2001)Google Scholar
  3. 3.
    Moller, F., Tofts, C.M.N.: Behavioural Abstraction in TCCS. In: Kuich, W. (ed.) ICALP 1992. LNCS, vol. 623, pp. 559–570. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  4. 4.
    Hansson, H., Jonsson, B.: A calculus for communicating systems with time and probabitilies. In: IEEE Real-Time Systems Symposium, pp. 278–287 (1990)Google Scholar
  5. 5.
    Léonard, L., Leduc, G.: A formal definition of time in LOTOS. Formal Asp. Comput. 10(3), 248–266 (1998)MATHCrossRefGoogle Scholar
  6. 6.
    Larsen, K.G., Pettersson, P., Yi, W.: Uppaal in a nutshell. STTT 1(1-2) (1997)Google Scholar
  7. 7.
    Holzmann, G.J.: The model checker SPIN. IEEE Transactions on Software Engineering 23, 279–295 (1997)CrossRefGoogle Scholar
  8. 8.
    Lamport, L.: Real-Time Model Checking Is Really Simple. In: Borrione, D., Paul, W. (eds.) CHARME 2005. LNCS, vol. 3725, pp. 162–175. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  9. 9.
    Wang, H., MacCaull, W.: Verifying real-time systems using explicit-time description methods. In: Andova, S., McIver, A., D’Argenio, P.R., Cuijpers, P.J.L., Markovski, J., Morgan, C., Núñez, M. (eds.) QFM. EPTCS, vol. 13 (2009)Google Scholar
  10. 10.
    van den Berg, L., Strooper, P.A., Winter, K.: Introducing Time in an Industrial Application of Model-Checking. In: Leue, S., Merino, P. (eds.) FMICS 2007. LNCS, vol. 4916, pp. 56–67. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  11. 11.
    Fredlund, L.Å., Svensson, H.: McErlang: a model checker for a distributed functional programming language. In: Proceeding of the 12th ACM SIGPLAN Int. Conf. on Functional Programming (ICFP). ACM, Freiburg (2007)Google Scholar
  12. 12.
    Guo, Q., Derrick, J., Hoch, C.: Verifying Erlang Telecommunication Systems with the Process Algebra μCRL. In: Suzuki, K., Higashino, T., Yasumoto, K., El-Fakih, K. (eds.) FORTE 2008. LNCS, vol. 5048, pp. 201–217. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  13. 13.
    Guo, Q., Derrick, J.: Verification of timed Erlang/OTP components using the process algebra mucrl. In: Proceedings of the 2007 ACM SIGPLAN Workshop on Erlang, Freiburg, Germany, October 5, pp. 55–64 (2007)Google Scholar
  14. 14.
    Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang. Prentice-Hall (1996)Google Scholar
  15. 15.
    Cesarini, F., Thompson, S.: Erlang Programming – A Concurrent Approach to Software Development. O’Reilly Media (2009)Google Scholar
  16. 16.
    Blau, S., Rooth, J., Axell, J., Hellstrand, F., Buhrgard, M., Westin, T., Wicklund, G.: AXD 301: A new generation ATM switching system. Computer Networks 31(6), 559–582 (1999)CrossRefGoogle Scholar
  17. 17.
    Wiger, U., Ask, G., Boortz, K.: World-class product certification using Erlang. SIGPLAN Not. 37, 25–34 (2002)CrossRefGoogle Scholar
  18. 18.
    McErlang: web page (April 2012), https://babel.ls.fi.upm.es/trac/McErlang/
  19. 19.
    Fredlund, L.-å., Sánchez Penas, J.J.: Model Checking a Video–on–Demand Server Using McErlang. In: Moreno Díaz, R., Pichler, F., Quesada Arencibia, A. (eds.) EUROCAST 2007. LNCS, vol. 4739, pp. 539–546. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  20. 20.
    Benac Earle, C., Fredlund, L.-Å., Iglesias, J.A., Ledezma, A.: Verifying Robocup Teams. In: Peled, D.A., Wooldridge, M.J. (eds.) MoChArt 2008. LNCS, vol. 5348, pp. 34–48. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  21. 21.
    Castro, D., Gulías, V.M., Benac Earle, C., Fredlund, L.Å., Rivas, S.: A case study on verifying a supervisor component using McErlang. ENTCS 271, 23–40 (2011)Google Scholar
  22. 22.
  23. 23.
    Behrmann, G., David, A., Larsen, K.G.: A Tutorial on Uppaal. In: Bernardo, M., Corradini, F. (eds.) SFM-RT 2004. LNCS, vol. 3185, pp. 200–236. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  24. 24.
    Fredlund, L.Å.: A Framework for Reasoning about Erlang Code. PhD thesis, Royal Institute of Technology, Stockholm, Sweden (2001)Google Scholar
  25. 25.
    Svensson, H., Fredlund, L.Å.: A more accurate semantics for distributed Erlang. In: Proc. of the SIGPLAN Workshop on Erlang. ACM, New York (2007)Google Scholar
  26. 26.
    Gafni, E., Mitzenmacher, M.: Analysis of timing-based mutual exclusion with random times. In: Proceedings of the Eighteenth Annual ACM Symposium on Principles of Distributed Computing, pp. 13–21. ACM Press (1999)Google Scholar
  27. 27.
    LambdaStream, S.L.: web page (April 2012), http://www.lambdastream.com/
  28. 28.
    Aceto, L., Cimini, M., Ingólfsdóttir, A., Reynisson, A.H., Sigurdarson, S.H., Sirjani, M.: Modelling and simulation of asynchronous real-time systems using Timed Rebeca. In: FOCLASA. EPTCS, vol. 58, pp. 1–19 (2011)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2012

Authors and Affiliations

  • Clara Benac Earle
    • 1
  • Lars-Åke Fredlund
    • 1
  1. 1.Babel group, DLSIIS, Facultad de InformáticaUniversidad Politécnica de MadridSpain

Personalised recommendations