Modular specifications in process algebra

With curious queues
  • Rob van Glabbeek
  • Frits Vaandrager
Part IV An Algebraic Approach To Concurrency
Part of the Lecture Notes in Computer Science book series (LNCS, volume 394)

Abstract

In recent years a wide variety of process algebras has been proposed in the literature. Often these process algebras are closely related: they can be viewed as homomorphic images, submodels or restrictions of each other. The aim of this paper is to show how the semantical reality, consisting of a large number of closely related process algebras, can be reflected, and even used, on the level of algebraic specifications and in process verifications. This is done by means of the notion of a module. The simplest modules are building blocks of operators and axioms, each block describing a feature of concurrency in a certain semantical setting. These modules can then be combined by means of a union operator +, an export operator □, allowing to forget some operators in a module, an operator H, changing semantics by taking homomorphic images, and an operator S which takes subalgebras. These operators enable us to combine modules in a subtle way, when the direct combination would be inconsistent. We show how auxiliary process algebra operators can be hidden when this is needed. Moreover it is demonstrated how new process combinators can be defined in terms of the more elementary ones in a clean way. As an illustration of our approach, a methodology is presented that can be used to specify FIFO-queues, and that facilitates verification of concurrent systems containing these queues.

Key Words & Phrases

process algebra concurrency modular algebraic specifications export operator union of modules homomorphism operator subalgebra operator FIFO-queues chaining operator communication protocols 

1985 Mathematical Subject Classification

68Q10 68Q55 68Q60 

1980 Mathematical Subject Classification

68B10 68C01 68D25 68F20 

1982 CR Categories

C.2.2 D.1.3 D.2.1 D.2.2 F.1.1 F.1.2 F.3.2 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    P. America (1985): Definition of the programming language POOL-T. ESPRIT project 415, Doc. Nr. 91, Philips Research Laboratories, Eindhoven.Google Scholar
  2. [2]
    D. Austry & G. Boudol (1984): Algèbre de processus et synchronisations. Theoretical Computer Science 30(1), pp. 91–131.CrossRefGoogle Scholar
  3. [3]
    J.C.M. Baeten & J.A. Bergstra (1987): Global Renaming Operators in Concrete Process Algebra (revised version). Report P8709, Programming Research Group, University of Amsterdam, to appear in I&C.Google Scholar
  4. [4]
    J.C.M. Baeten, J.A. Bergstra & J.W. Klop (1987): Conditional Axioms and α/β Calculus in Process Algebra. In: Formal Description of Programming Concepts — III, Proceedings of the third IFIP WG 2.2 working conference, Ebberup 1986 (M. Wirsing, ed.), North-Holland, Amsterdam, pp. 53–75.Google Scholar
  5. [5]
    J.C.M. Baeten, J.A. Bergstra & J.W. Klop (1987): On the Consistency of Koomen's Fair Abstraction Rule. Theoretical Computer Science 51(1/2), pp. 129–176.CrossRefGoogle Scholar
  6. [6]
    J.C.M. Baeten, J.A. Bergstra & J.W. Klop (1987): Ready trace semantics for concrete process algebra with priority operator. The Computer Journal 30(6), pp. 498–506.Google Scholar
  7. [7]
    J.C.M. Baeten & R.J. van Glabbeek (1987): Merge and termination in process algebra. In: Proceedings 7th Conference on Foundations of Software Technology & Theoretical Computer Science, Pune, India (K.V. Nori, ed.), LNCS 287, Springer-Verlag, pp. 153–172.Google Scholar
  8. [8]
    J.A. Bergstra (1985): A Process Creation Mechanism in Process Algebra. Logic Group Preprint Series Nr. 2, CIF, State University of Utrecht, to appear in: Applications of Process Algebra, (J.C.M. Baeten, ed.), CWI Monograph, North-Holland, 1988.Google Scholar
  9. [9]
    J.A. Bergstra, J. Heering & P. Klint (1986): Module Algebra. Report CS-R8617, Centrum voor Wiskunde en Informatica, Amsterdam, to appear in: Journal of the ACM.Google Scholar
  10. [10]
    J.A. Bergstra & J.W. Klop (1984): The algebra of recursively defined processes and the algebra of regular processes. In: Proceedings 11th ICALP, Antwerpen (J. Paredaens, ed.), LNCS 172, Springer-Verlag, pp. 82–95.Google Scholar
  11. [11]
    J.A. Bergstra & J.W. Klop (1984): Process algebra for synchronous communication. I&C 60(1/3), pp. 109–137.Google Scholar
  12. [12]
    J.A. Bergstra & J.W. Klop (1985): Algebra of communicating processes with abstraction. Theoretical Computer Science 37(1), pp. 77–121.CrossRefGoogle Scholar
  13. [13]
    J.A. Bergstra & J.W. Klop (1986): Process Algebra: Specification and Verification in Bisimulation Semantics. In: Mathematics and Computer Science II, CWI Monograph 4 (M. Hazewinkel, J.K. Lenstra & L.G.L.T. Meertens, eds.), North-Holland, Amsterdam, pp. 61–94.Google Scholar
  14. [14]
    J.A. Bergstra & J.W. Klop: ACPτ: A Universal Axiom System for Process Specification. This volume.Google Scholar
  15. [15]
    J.A. Bergstra, J.W. Klop & E.-R. Olderog (1987): Failures without chaos: a new process semantics for fair abstraction. In: Formal Description of Programming Concepts — III, Proceedings of the third IFIP WG 2.2 working conference, Ebberup 1986 (M. Wirsing, ed.), North-Holland, Amsterdam, pp. 77–103.Google Scholar
  16. [16]
    J.A. Bergstra & J. Tiuryn (1987): Process Algebra Semantics for Queues. Fund. Inf. X, pp. 213–224, also appeared as: MC Report IW 241, Amsterdam 1983.Google Scholar
  17. [17]
    S.D. Brookes & A.W. Roscoe (1985): An improved failures model for communicating processes. In: Seminar on Concurrency (S.D. Brookes, A.W. Roscoe & G. Winskel, eds.), LNCS 197, Springer-Verlag, pp. 281–305.Google Scholar
  18. [18]
    M. Broy (1987): Views of Queues. Report MIP-8704, Fakultät für Mathematik und Informatik, Universität Passau.Google Scholar
  19. [19]
    CHILL (1980): Recommendation Z.200 (CHILL Language Definition). CCITT Study Group XI.Google Scholar
  20. [20]
    R. De Nicola & M. Hennessy (1984): Testing equivalences for processes. Theoretical Computer Science 34, pp. 83–134.CrossRefGoogle Scholar
  21. [21]
    T. Denvir, W. Harwood, M. Jackson & M. Ray (1985): The Analysis of Concurrent Systems, Proceedings of a Tutorial and Workshop, Cambridge University 1983, LNCS 207, Springer-Verlag.Google Scholar
  22. [22]
    R.J. van Glabbeek (1987): Bounded Nondeterminism and the Approximation Induction Principle in Process Algebra. In: Proceedings STACS 87 (F.J. Brandenburg, G. Vidal-Naquet & M. Wirsing, eds.), LNCS 247, Springer-Verlag, pp. 336–347.Google Scholar
  23. [23]
    R.J. van Glabbeek & F.W. Vaandrager (1988): Modular Specifications in Process Algebra — With Curious Queues. Report CS-R8821, Centrum voor Wiskunde en Informatica, Amsterdam.Google Scholar
  24. [24]
    C.A.R. Hoare (1980): Communicating sequential processes. In: On the construction of programs — an advanced course (R.M. McKeag & A.M. Macnaghten, eds.), Cambridge University Press, pp. 229–254.Google Scholar
  25. [25]
    C.A.R. Hoare (1985): Communicating Sequential Processes, Prentice-Hall International.Google Scholar
  26. [26]
    He Jifeng & C.A.R. Hoare (1987): Algebraic specification and proof of a distributed recovery algorithm. Distributed Computing 2(1), pp. 1–12.CrossRefGoogle Scholar
  27. [27]
    C.P.J. Koymans & J.C. Mulder (1986): A Modular Approach to Protocol Verification using Process Algebra. Logic Group Preprint Series Nr. 6, CIF, State University of Utrecht, to appear in: Applications of Process Algebra, (J.C.M. Baeten, ed.), CWI Monograph, North-Holland, 1988.Google Scholar
  28. [28]
    K.G. Larsen & R. Milner (1987): A Complete Protocol Verification Using Relativized Bisimulation. In: Proceedings 14th ICALP, Karlsruhe (Th. Ottmann, ed.), LNCS 267, Springer-Verlag, pp. 126–135.Google Scholar
  29. [29]
    S. Mauw (1987): An algebraic specification of process algebra, including two examples. This volume.Google Scholar
  30. [30]
    S. Mauw & G.J. Veltink (1988): A Process Specification Formalism. Report P8814, Programming Research Group, University of Amsterdam.Google Scholar
  31. [31]
    R. Milner (1980): A Calculus of Communicating Systems, LNCS 92, Springer-Verlag.Google Scholar
  32. [32]
    R. Milner (1985): Lectures on a Calculus for Communicating Systems. In: Seminar on Concurrency (S.D. Brookes, A.W. Roscoe & G. Winskel, eds.), LNCS 197, Springer-Verlag, pp. 197–220.Google Scholar
  33. [33]
    J.D. Monk (1976): Mathematical Logic, Springer-Verlag.Google Scholar
  34. [34]
    E.-R. Olderog & C.A.R. Hoare (1986): Specification-Oriented Semantics for Communicating Processes. Acta Informatica 23, pp. 9–66.Google Scholar
  35. [35]
    I.C.C. Phillips (1987): Refusal Testing. Theoretical Computer Science 50, pp. 241–284.CrossRefGoogle Scholar
  36. [36]
    V.R. Pratt (1986): Modelling Concurrency with Partial Orders. International Journal of Parallel Programming 15(1), pp. 33–71.CrossRefGoogle Scholar
  37. [37]
    D.T. Sannella & A. Tarlecki (1988): Toward Formal Development of Programs from Algebraic Specifications: Implementations Revisited. Acta Informatica 25, pp. 233–281.CrossRefGoogle Scholar
  38. [38]
    D.T. Sannella & M. Wirsing (1983): A kernel language for algebraic specification and implementation (extended abstract). In: Proc. Intl. Conf. on Foundations of Computation Theory, Borgholm (M. Karpinski, ed.), LNCS 158, pp. 413–427, long version: Report CSR-131-83, Dept. of Computer Science, Univ. of Edinburgh, 1983.Google Scholar
  39. [39]
    F.W. Vaandrager (1986): Verification of Two Communication Protocols by Means of Process Algebra. Report CS-R8608, Centrum voor Wiskunde en Informatica, Amsterdam.Google Scholar
  40. [40]
    F.W. Vaandrager (1986): Process algebra semantics of POOL. Report CS-R8629, Centrum voor Wiskunde en Informatica, Amsterdam, to appear in: Applications of Process Algebra, (J.C.M. Baeten, ed.), CWI Monograph, North-Holland, 1988.Google Scholar
  41. [41]
    F.W. Vaandrager (1988): Some Observations on Redundancy in a Context. Report CSR8812, Centrum voor Wiskunde en Informatica, Amsterdam, to appear in: Applications of Process Algebra, (J.C.M. Baeten, ed.), CWI Monograph, North-Holland, 1988.Google Scholar

Copyright information

© Springer-Verlag 1989

Authors and Affiliations

  • Rob van Glabbeek
    • 1
  • Frits Vaandrager
    • 1
  1. 1.Centre for Mathematics and Computer ScienceAmsterdamThe Netherlands

Personalised recommendations