Static Livelock Analysis in CSP

  • Joël Ouaknine
  • Hristina Palikareva
  • A. W. Roscoe
  • James Worrell
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6901)


In a process algebra with hiding and recursion it is possible to create processes which compute internally without ever communicating with their environment. Such processes are said to diverge or livelock. In this paper we show how it is possible to conservatively classify processes as livelock-free through a static analysis of their syntax. In particular, we present a collection of rules, based on the inductive structure of terms, which guarantee livelock-freedom of the denoted process. This gives rise to an algorithm which conservatively flags processes that can potentially livelock. We illustrate our approach by applying both BDD-based and SAT-based implementations of our algorithm to a range of benchmarks, and show that our technique in general substantially outperforms the model checker FDR whilst exhibiting a low rate of inconclusive results.


Operational Semantic Parallel Composition Label Transition System Process Algebra Ultrametric Space 
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. 1.
    De Bakker, J.W., Zucker, J.I.: Processes and the denotational semantics of concurrency. Information and Control 54, 70–120 (1982)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Bravetti, M., Gorrieri, R.: Deciding and axiomatizing weak ST bisimulation for a process algebra with recursion and action refinement. ACM Transactions on Computational Logic 3(4), 465–520 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Dimovski, A.: A compositional method for deciding program termination. In: ICT Innovations, vol. 83, pp. 71–80. Springer, Heidelberg (2010)Google Scholar
  4. 4.
    Gandy, R.O.: An early proof of normalization by A.M. Turing. In: To, H.B. (ed.) Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, vol. 267, pp. 453–455. Academic Press, London (1980)Google Scholar
  5. 5.
    Girard, J.-Y., Lafont, Y., Taylor, P.: Proofs and Types. Cambridge Tracts in Theoretical Science, vol. 7. Cambridge University Press, Cambridge (1988)Google Scholar
  6. 6.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall International, London (1985)zbMATHGoogle Scholar
  7. 7.
    Leue, S., Ştefănescu, A., Wei, W.: A livelock freedom analysis for infinite state asynchronous reactive systems. In: Baier, C., Hermanns, H. (eds.) CONCUR 2006. LNCS, vol. 4137, pp. 79–94. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  8. 8.
    Leue, S., Ştefănescu, A., Wei, W.: Dependency analysis for control flow cycles in reactive communicating processes. In: Havelund, K., Majumdar, R. (eds.) SPIN 2008. LNCS, vol. 5156, pp. 176–195. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  9. 9.
    Milner, R.: Communication and Concurrency. Prentice-Hall International, London (1989)zbMATHGoogle Scholar
  10. 10.
    Mitchell, J.C.: Foundations for Programming Languages. MIT Press, Cambridge (1996)Google Scholar
  11. 11.
    Ouaknine, J., Palikareva, H., Roscoe, A.W., Worrell, J.: Static livelock analysis for CSP: Full version (2011),
  12. 12.
    Roscoe, A.W.: A Mathematical Theory of Communicating Processes. PhD thesis, Oxford University (1982)Google Scholar
  13. 13.
    Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice-Hall International, London (1997)Google Scholar
  14. 14.
    Roscoe, A.W.: Understanding Concurrent Systems. Springer, Heidelberg (2011),
  15. 15.
    Sangiorgi, D.: Types, or: Where’s the difference between CCS and π? In: Brim, L., Jančar, P., Křetínský, M., Kučera, A. (eds.) CONCUR 2002. LNCS, vol. 2421, pp. 76–97. Springer, Heidelberg (2002)Google Scholar
  16. 16.
    Schneider, S., Treharne, H., Wehrheim, H.: A CSP approach to control in Event-B. In: Méry, D., Merz, S. (eds.) IFM 2010. LNCS, vol. 6396, pp. 260–274. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  17. 17.
    Schneider, S., Treharne, H., Wehrheim, H.: A CSP account of Event-B refinement (2011) (unpublished)Google Scholar
  18. 18.
    Sutherland, W.A.: Introduction to Metric and Topological Spaces. Oxford University Press, Oxford (1975)zbMATHGoogle Scholar
  19. 19.
    Winskel, G.: The Formal Semantics of Programming Languages: An Introduction. MIT Press, Cambridge (1993)zbMATHGoogle Scholar
  20. 20.
    Yoshida, N., Berger, M., Honda, K.: Strong normalisation in the π-Calculus. In: Proceedings of LICS 2001, pp. 311–322. IEEE Computer Society Press, Los Alamitos (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Joël Ouaknine
    • 1
  • Hristina Palikareva
    • 1
  • A. W. Roscoe
    • 1
  • James Worrell
    • 1
  1. 1.Department of Computer ScienceOxford UniversityUK

Personalised recommendations