Process theory: Semantics, specification and verification

  • Ernst-Rüdiger Olderog
Part of the Lecture Notes in Computer Science book series (LNCS, volume 224)


Processes are designed to interact with their users by communication. Their behaviour can be difficult to understand intuitively because of a delicate interaction of nondeterminism and concurrency. Process theory seeks to overcome this difficulty by providing sound formal descriptions of processes (semantics) which facilitate their specification, verification and construction.

The simplest description method uses nondeterministic machines as known from classical automata theory. But this method has two severe drawbacks: it neither clarifies the structure of more complex processes nor does it abstract from internal process activity which should not bother the user.

The first drawback is overcome by introducing a syntax for processes, here TCSP. The second drawback is more difficult to overcome. In fact, various solutions are meaningful depending on what properties the user is interested in.

First we discuss the simple abstraction mechanism of trace semantics which permits to deal only with safety properties of processes. Within trace semantics we develop a top-down approach to the verification of processes w.r.t. these properties. The approach uses transformation rules which are applied to terms allowing a free mixture of specifications and process syntax, called mixed terms.

To deal with certain liveness properties of processes we introduce the abstraction mechanism of the readiness semantics. Under this semantics only processes without undesirable stops (deadlocks) and without infinite internal activity (divergence) will satisfy a specification. We use the readiness semantics to develop transformation rules for the systematic top-down construction of processes from their specifications. These rules also deal with mixed terms but are more restrictive in their application than the corresponding verification rules for the trace semantics.

Key words

Processes communication synchronization nondeterminism parallelism nondeterministic machines state transition diagrams bisimulation TCSP abstraction from internal actions hiding global and compositional semantics operational and denotational sematics mixed terms top-down verification transformation rules top-down construction parallel decomposition static and dynamic process configurations 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

9. References

  1. /AFR/.
    K.R. Apt, N. Francez, W.P. de Roever, A proof system for communicating sequential processes, ACM TOPLAS 2 (1980) 359–385.Google Scholar
  2. /Bac/.
    R.J.R. Back, Correctness preserving program refinements: proof theory and applications, Mathematical Centre Tracts 131 (Mathematical Centre, Amsterdam, 1980).Google Scholar
  3. /dB/.
    J.W. de Bakker, Mathematical Theory of Program Correctness (Prentice Hall, London, 1980).Google Scholar
  4. /BMOZ/.
    J.W. de Bakker, J.-J.Ch. Meyer, E.-R. Olderog, J.I. Zucker, Transition systems, infinitary languages and the semantics of uniform concurrency, in: Proc. 17th ACM Symposium on Theory of Computing, Providence, Rhode Island (1985).Google Scholar
  5. /BZ/.
    J.W. de Bakker, J.I. Zucker, Processes and the denotational semantics of concurrency, Inform. and Control 54 (1982) 70–120.Google Scholar
  6. /Bau/.
    F.L. Bauer et al., The Munich project CIP, volume I: the wide spectrum language CIP-L, Lecture Notes in Computer Science 183 (Springer-Verlag, 1985).Google Scholar
  7. /BK1/.
    J.A. Bergstra, J.W. Klop, Verification of an alternating bit protocol by means of process algebra, Report CS-R8404, Centrum voor Wiskunde en Informatica, Amsterdam 1984.Google Scholar
  8. /BK2/.
    J.A. Bergstra, J.W. Klop, Algebra of communicating processes, to appear in: J.W. de Bakker, M. Hazewinkel, J.K. Lenstra (Eds.), Proc. of the CWI Symposium on Mathematics and Computer Science (North Holland, Amsterdam, 1985).Google Scholar
  9. /BHR/.
    S.D. Brookes, C.A.R. Hoare, A.W. Roscoe, A theory of communicating sequential processes, J. ACM 31 (1984) 560–599.Google Scholar
  10. /BD/.
    R.M. Burstall, J. Darlington, A transformational system for developing recursive programs, J. ACM 24 (1977) 44–67.Google Scholar
  11. /Di/.
    E.W. Dijkstra, A Discipline of Programming (Prentice Hall, Englewood Cliff, 1976).Google Scholar
  12. /EC/.
    E.A. Emerson, E.M. Clarke, Using branching time temporal logic to synthesize synchronization skeletons, SCP 2 (1982, publ. 1983) 241–266.Google Scholar
  13. /FLP/.
    N. Francez, D. Lehmann, A. Pnueli, A linear history semantics for laguages for distributed programming, TCS 32 (1984) 25–46.Google Scholar
  14. /Go/.
    M. Gordon, The Denotational Description of Programming Languages (Springer-Verlag, New York, 1979).Google Scholar
  15. /Ha/.
    M.A. Harrison, Introduction to Switching and Automata Theory (Mc Graw-Hill, New York, 1965).Google Scholar
  16. /He/.
    E.C.R. Hehner, Predicative programming, part I and II, Comm. ACM 27 (1984) 134–151.Google Scholar
  17. /Hen/.
    M. Hennessy, Proving systolic systems correct, Internal Report CSR-162-84, Dept. of Comp. Sci., Univ of Edinburgh, 1984 (to appear in ACM TOPLAS).Google Scholar
  18. /HP/.
    M. Hennessy, G.D. Plotkin, Full abstraction for a simple programming language, in: J. Bečvař (Ed.), Proc. 8th Symp. on Mathematical Foundations of Comp. Sci., Lecture Notes in Computer Science 74 (Springer-Verlag, 1979) 108–120.Google Scholar
  19. /Ho1/.
    C.A.R. Hoare, A model for communicating sequential processes, in: R.M. Mc Keag, A.M. Mc Naghton (Eds.), On the Construction of Programs (Cambridge University Press, 1980) 229–243.Google Scholar
  20. /Ho2/.
    C.A.R. Hoare, Communicating Sequential Processes (Prentice Hall, London, 1985).Google Scholar
  21. /HU/.
    J.E. Hopcroft, J.D. Ullman, Formal Languages and Their Relation to Automata Theory (Addison-Wesley, Reading, Mass., 1969).Google Scholar
  22. /IN/.
    INMOS Ltd., OCCAM Programming Manual (Prentice Hall, London, 1984).Google Scholar
  23. /Ke/.
    R. Keller, Formal verification of parallel programs, Comm. ACM 19 (1976) 371–384.Google Scholar
  24. /MW/.
    Z. Manna, P. Wolper, Synthesis of communicating processes from temporal logic specifications, ACM TOPLAS 6 (1984) 68–93.Google Scholar
  25. /Mil/.
    G. Milne, CIRCAL: a calculus for circuit description, INTEGRATION 1 (1983) 121–160.Google Scholar
  26. /Mi/.
    R. Milner, A Calculus of Communicating Systems, Lecture Notes in Computer Science 92 (Springer-Verlag, 1980).Google Scholar
  27. /dNH/.
    R. de Nicola, M. Hennessy, Testing equivalences for processes, TCS 34 (1984) 83–134.Google Scholar
  28. /Ni/.
    M. Nivat, Infinite words, infinite trees, infinite computations, Foundations of Computer Science III.2, Mathematical Centre Tracts 109 (1979) 3–52.Google Scholar
  29. /Ol1/.
    E.-R. Olderog, Sound and complete Hoare-like calculi based on copy rules, Acta Inform. 16 (1981) 161–197.Google Scholar
  30. /Ol2/.
    E.-R. Olderog, Specification-oriented programming in TCSP, in: K.R. Apt (Ed.), Logics and Models of Concurrent Systems (Springer-Verlag, Berlin, 1985) 397–435.Google Scholar
  31. /OH/.
    E.-R. Olderog, C.A.R. Hoare, Specification-oriented semantics for communicating processes, Tech. monograph PRG-37, Progr. Research Group, Oxford Univ., 1984 (to appear in Acta Inform.).Google Scholar
  32. /OG/.
    S. Owicki, D. Gries, An axiomatic proof technique for parallel programs, Acta Inform. 6 (1976) 319–340.Google Scholar
  33. /OL/.
    S. Owicki, L. Lamport, Proving liveness properties of concurrent programs, ACM TOPLAS 4 (1982) 199–223.Google Scholar
  34. /Pa/.
    D. Park, Concurrency and automata on infinite sequences, in: P. Deussen (Ed.), Proc. 5th GI (Gesellschaft für Informatik) Conf. on Theoret. Comp. Sci., Springer Lecture Notes in Computer Science 104 (Springer-Verlag, 1981).Google Scholar
  35. /Pe/.
    C.A. Petri, Introduction to general net theory, in: W. Brauer (Ed.), Proc. Net Theory and Applications, Lecture Notes in Computer Science 84 (Springer-Verlag, 1984).Google Scholar
  36. /Pl/.
    G.D. Plotkin, Structural approach to operational semantics, Tech. Report DAIMI FN-19, Comp. Sci. Dept., Aarhus Univ., 1981.Google Scholar
  37. /RS/.
    M.O. Rabin, D.S. Scott, Finite automata and their decision problems, IBM J. Res. 3:2, 1959.Google Scholar
  38. /Re/.
    M. Rem, Concurrent computations and VLSI circuits, in: M. Broy (Ed.), Control Flow and Data Flow: Concepts of Distributed Programming (Springer-Verlag, Berlin, 1985) 399–437.Google Scholar
  39. /dR/.
    W.P. de Roever, The quest for compositionality — a survey of assertion-based proof systems for concurrent programs, part 1, in: E.J. Neuhold (Ed.), Proc. IFIP Conf. on The Role of Abstract Models in Inform. Processing (North-Holland, Amsterdam, 1985).Google Scholar
  40. /St/.
    J.E. Stoy, Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory (MIT Press, Cambridge, Mass., 1977).Google Scholar
  41. /Wi/.
    N. Wirth, Program development by stepwise refinement, Comm. ACM 14 (1971) 221–227.Google Scholar
  42. /ZRE/.
    J. Zwiers, W.P. de Roever, P. van Emde Boas, Compositionality and concurrent networks, in: W. Brauer (Ed.), Proc. 12th Coll. Automata, Languages and Programming, Lecture Notes in computer Science 194 (Springer-Verlag, 1985) 509–519.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Ernst-Rüdiger Olderog
    • 1
  1. 1.Institut für Informatik und Praktische MathematikChristian-Albrechts-Universität KielKiel 1Fed. Rep. Germany

Personalised recommendations