skip to main content
research-article
Free Access

Process algebra with guards: Combining Hoare logic with process algebra

Authors Info & Claims
Published:01 March 1994Publication History
Skip Abstract Section

Abstract

Abstract

We extend process algebra with guards, comparable to the guards in guarded commands or conditions in common programming constructs such as ‘if — then — else — fi’ and ‘while — do — od’.

The extended language is provided with an operational semantics based on transitions between pairs of a process and a (data-)state. The data-states are given by a data environment that also defines in which data-states guards hold and how atomic actions (non-deterministically) transform these states. The operational semantics is studied modulo strong bisimulation equivalence. For basic process algebra (without operators for parallelism) we present a small axiom system that is complete with respect to a general class of data environments. Given a particular data environmentL we add three axioms to this system, which is then again complete, provided weakest preconditions are expressible andL is sufficiently deterministic.

Then we study process algebra with parallelism and guards. A two phase-calculus is provided that makes it possible to prove identities between parallel processes. Also this calculus is complete. In the last section we show that partial correctness formulas can easily be expressed in this setting. We use process algebra with guards to prove the soundness of a Hoare logic for linear processes by translating proofs in Hoare logic into proofs in process algebra.

References

  1. [AuB84] Austry D.Boudol G.Algèbre de processus et synchronisationsTheoretical Computer Science198430191131Google ScholarGoogle ScholarCross RefCross Ref
  2. [Apt81] Apt K.R.Ten years of Hoare's logic: a survey — Part IACM Transactions on Programming Languages and Systems198134431483Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. [Apt84] Apt K.R.Ten years of Hoare's logic: a survey — Part II; NondeterminismTheoretical Computer Science19842883109Google ScholarGoogle ScholarCross RefCross Ref
  4. [Bak80] de Bakker, J.W.:Mathematical theory of program correctness. Prentice Hall International, 1980.Google ScholarGoogle Scholar
  5. [BaB88] Baeten J.C.M.Bergstra J.A.Global renaming operators in concrete process algebraInformation and Computation1988783205245Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. [BaB90] Baeten, J.C.M. and Bergstra, J.A.: Process algebra with signals and conditions. In M. Broy, editor,Programming and Mathematical Methods, Proceedings Summer School Marktoberdorf 1991, NATO ASI Series F88, pages 273–323, Springer-Verlag, 1991.Google ScholarGoogle Scholar
  7. [BvG87] Baeten, J.C.M. and van Glabbeek, R.J.: Merge and termination in process algebra. In K.V. Nori, editor,Proceedings 7thConference on Foundations of Software Technology and Theoretical Computer Science, Pune, India, volume 287 ofLecture Notes in Computer Science, pages 153–172. Springer-Verlag, 1987.Google ScholarGoogle Scholar
  8. [BeK84a] Bergstra, J.A. and Klop, J.W.: The algebra of recursively defined processes and the algebra of regular processes. In J. Paredaens, editor,Proceedings 11thICALP, Antwerp, volume 172 ofLecture Notes in Computer Science, pages 82–95. Springer-Verlag, 1984.Google ScholarGoogle Scholar
  9. [BeK84b] Bergstra J.A.Klop J.W.Process algebra for synchronous communicationInformation and Computation1984601/3109137Google ScholarGoogle Scholar
  10. [BeK86] Bergstra, J.A. and Klop, J.W.: Verification of an alternating bit protocol by means of process algebra. In W. Bibel and K.P. Jantke, editors,Math. Methods of Spec. and Synthesis of Software Systems '85, Math. Research 31, pages 9–23, Berlin, 1986. Akademie-Verlag. First appeared as: Report CS-R8404, CWI, Amsterdam, 1984.Google ScholarGoogle Scholar
  11. [BKT85] Bergstra, J.A. Klop, J.W. and Tucker, J.V.: Process algebra with asynchronous communication mechanisms. In S.D. Brookes, A.W. Roscoe, and G. Winskel, editors,Seminar on Concurrency, volume 197 ofLecture Notes in Computer Science, pages 76–95. Springer-Verlag, 1985.Google ScholarGoogle Scholar
  12. [BaW90] Baeten, J.C.M. and Weijland, W.P.:Process algebra. Cambridge Tracts in Theoretical Computer Science 18. Cambridge University Press, 1990.Google ScholarGoogle Scholar
  13. [Da183] van Dalen, D.:Logic and Structure. Springer-Verlag, 1983.Google ScholarGoogle Scholar
  14. [Dij76] Dijkstra E.W.A Discipline of Programming1976Englewood CliffsPrentice Hall InternationalGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  15. [Gla90] van Glabbeek, R.J.: The linear time — branching time spectrum. In J.C.M. Baeten and J.W. Klop, editors,Proceedings CONCUR 90, Amsterdam, volume 458 ofLecture Notes in Computer Science, pages 278–297. Springer-Verlag, 1990.Google ScholarGoogle Scholar
  16. [Gla93] van Glabbeek, R.J.: The linear time — branching time spectrum II (the semantics of sequential systems with silent moves). In E. Best, editor,Proceedings CONCUR 93, Hildesheim,Lecture Notes in Computer Science, Springer-Verlag, to appear.Google ScholarGoogle Scholar
  17. [vGV89] van Glabbeek, R.J. and Vaandrager, F.W.: Modular specifications in process algebra — with curious queues (extended abstract). In M. Wirsing and J.A. Bergstra, editors,Algebraic Methods: Theory, Tools and Applications, Workshop Passau 1987, volume 394 ofLecture Notes in Computer Science, pages 465–506. Springer-Verlag, 1989.Google ScholarGoogle Scholar
  18. [Hen91] Hennessy M.A proof system for communicating processes with value-passingFormal Aspects of Computing19913346366Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. [HHJ87] Hoare C.A.R.Hayes I.J.Jifeng He.Morgan C.C.Roscoe A.W.Sanders J.W.Sorensen I.H.Spivey J.M.Sufrin B.A.Laws of programmingCommunications of the ACM1987308672686Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. [Hoa69] Hoare, C.A.R.: An axiomatic basis for computer programming.Communications of the ACM, 12(10), October 1969.Google ScholarGoogle Scholar
  21. [Hoa85] Hoare, C.A.R.:Communicating Sequential Processes. Prentice Hall International, 1985.Google ScholarGoogle Scholar
  22. [HoU79] Hopcroft, J.E. and Ullman, J.D.:Introduction to Automata Theory, Languages and Computation. Addison-Wesley, 1979.Google ScholarGoogle Scholar
  23. [ISO87] ISO.Information processing systems — open systems interconnection — LOTOS — a formal description technique based on the temporal ordering of observational behaviour, 1987. ISO/TC97/SC21/N DIS8807.Google ScholarGoogle Scholar
  24. [Lam80] Lamport L.The ‘Hoare logic’ of concurrent programsActa Informatica1980142137Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. [MaA86] Manes, E.G. and Arbib, M.A.:Algebraic Approaches to Program Semantics. Texts and Monographs in Computer Science. Springer-Verlag, 1986.Google ScholarGoogle Scholar
  26. [Man74] Manna, Z.:Mathematical Theory of Computation. McGraw-Hill Book Co., 1974.Google ScholarGoogle Scholar
  27. [Mil80] Milner, R.:A Calculus of Communicating Systems, volume 92 ofLecture Notes in Computer Science. Springer-Verlag, 1980.Google ScholarGoogle Scholar
  28. [Mil89] Milner, R.:Communication and concurrency. Prentice Hall International, 1989.Google ScholarGoogle Scholar
  29. [OwG76] Owicki, S. and Gries, D.: An axiomatic proof technique for parallel programs.Acta Informatica, pages 319–340, 1976.Google ScholarGoogle Scholar
  30. [Par81] Park, D.M.R.: Concurrency and automata on infinite sequences. In P. Deussen, editor, 5thGI Conference, volume 104 ofLecture Notes in Computer Science, pages 167–183. Springer-Verlag, 1981.Google ScholarGoogle Scholar
  31. [Plo81] Plotkin, G.D.: A structural approach to operational semantics. Report DAIMI FN-19, Computer Science Department, Aarhus University, 1981.Google ScholarGoogle Scholar
  32. [Pon91] Ponse A.Process expressions and Hoare's logicInformation and Computation1991952192217Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. [Sio64] Sioson F.M.Equational bases of Boolean algebrasJournal of Symbolic Logic1964293115124Google ScholarGoogle ScholarCross RefCross Ref
  34. [SPE90] SPECS-Semantics and Analysis.Definition of MR and CRL Version 2.1. Specification and Programming Environment for Communicating Software (SPECS), RACE Ref: 1046, Report 46/SPE/WP5/DS/A/017/b1, December 1990.Google ScholarGoogle Scholar
  35. [Sti88] Stirling C.A generalization of Owicki-Gries's Hoare logic for a concurrent whilelanguageTheoretical Computer Science19885834359Google ScholarGoogle Scholar
  36. [Vaa89] Vaandrager, F.W.: Specificatie en verificatie van communicatieprotocollen met procesalgebra. Dept. of Computer Science, University of Amsterdam, 1989. Lecture notes, in Dutch.Google ScholarGoogle Scholar

Index Terms

  1. Process algebra with guards: Combining Hoare logic with process algebra
            Index terms have been assigned to the content through auto-classification.

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Article Metrics

              • Downloads (Last 12 months)18
              • Downloads (Last 6 weeks)5

              Other Metrics

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader