Refinement and composition of transition-based rely-guarantee specifications with auxiliary variables

  • Peter Grønning
  • Thomas Qvist Nielsen
  • Hans Henrik Løvengreen
Distributed Computing
Part of the Lecture Notes in Computer Science book series (LNCS, volume 472)


We combine two ideas for specification and verification of concurrent systems: The rely-guarantee paradigm and transition-based specification. We consider specification of safety properties of shared variable systems. A component is specified by stating which transitions its environment is allowed to make to the interface variables and which changes the component then guarantees to stay within. Auxiliary variables are used to carry history information. For such specifications, we present proof rules for verifying that one specification refines another and that parallel composition of components implements a given specification. Application of the rules is illustrated by small examples.


Rely-guarantee specification compositional verification safety properties shared variables transition systems 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Martin Abadi & Leslie Lamport: The Existence of Refinement Mappings. Digital Equipment Corporation 1988. Shortened version in Proceedings of the LICS Conference, Edinburgh, Scotland. July 1988.Google Scholar
  2. [2]
    Martin Abadi & Leslie Lamport: Composing Specifications. In proc. of REX workshop on stepwise refinement of distributed systems, LNCS 430, Springer-Verlag 1990, pages 1–41.Google Scholar
  3. [3]
    Howard Barringer, Ruurd Kuiper & Amir Pnueli: Now You May Compose Temporal Logic Specifications Proceedings of the 16th ACM SOTCS, Washington 1984, pages 57–63.Google Scholar
  4. [4]
    Mani Chandy & Jajadev Misra: Parallel Program Design — A Foundation. Addison-Wesley Publishing Company Inc. 1988.Google Scholar
  5. [5]
    P. Grønning & T. Qvist Nielsen: Compositional Specification and Verification of Concurrent Systems. Master's Thesis, Department of Computer Science, Technical University of Denmark, January 1990.Google Scholar
  6. [6]
    C.A.R Hoare: Communicating Sequential Processes, Prentice Hall, 1985.Google Scholar
  7. [7]
    Cliff B. Jones: Specification and Design of (Parallel) Programs. Proceedings of IFIP 83, pages 321–332.Google Scholar
  8. [8]
    Bengt Jonsson: Compositional Verification of Distributed Systems. Ph.D. Thesis. Uppsala DoCS 87/09 1987.Google Scholar
  9. [9]
    Bengt Jonsson: On Decomposing and Refining Specifications of Distributed Systems. In proc. of REX workshop on stepwise refinement of distributed systems, LNCS 430, Springer-Verlag 1990, pages 361–385Google Scholar
  10. [10]
    N. Klarlund & F.B. Schneider: Verifying Safety Properties Using Infinite-State Automata. Technical Report, No. TR 89-1036, Cornell University, 1989.Google Scholar
  11. [11]
    Reino Kurki-Suonio: Operational Specification with Joint Actions: Serializable Databases. To appear in Distributed Computing.Google Scholar
  12. [12]
    Leslie Lamport: Specifying Concurrent Program Modules. ACM Transactions on Programming Languages and Systems, Vol. 5, No. 2, April 1983, pages 190–222.Google Scholar
  13. [13]
    S.S. Lam & A.U. Shankar: Protocol verification via projections. IEEE Transactions on Software Engineering, Vol. SE-10, No. 4, July 1984, pages 325–342.Google Scholar
  14. [14]
    Nancy A. Lynch & Mark R. Tuttle: Hierachical Correctness Proofs for Distributed Algorithms. In proc. of the Sixth Symposium on the Principles of Distributed Computing, ACM, August 1987, pages 137–151.Google Scholar
  15. [15]
    Alain J. Martin: Compiling communicating processes into delay-insensitive VLSI circuits, Distributed Computing, Vol. 1 1986, pages 226–234.Google Scholar
  16. [16]
    Robin Milner: Communication and Concurrency, Prentice Hall, 1989.Google Scholar
  17. [17]
    Jayadev Misra & K. Mani Chandy: Proofs of Networks of Processes. IEEE Transactions of Software Engineering, Vol. SE-7, No. 4, July 1981, pages 417–426.Google Scholar
  18. [18]
    P. Pandya: Compositional Verification of Distributed Programs. Ph.D. Thesis. University of Bombay, 1988.Google Scholar
  19. [19]
    Amir Pnueli: In Transition From Global to Modular Temporal Reasoning about Programs. NATO ASI Series, Vol. F13, Logics and Models of Concurrent Systems, Springer-Verlag 1985, pages 123–144.Google Scholar
  20. [20]
    Eugene W. Stark: A Proof Technique for Rely/Guarantee Properties. Foundations of Software Technology and Theoretical Computer Science, LNCS 206, Springer-Verlag, 1985, pages 369–391.Google Scholar
  21. [21]
    Eugene W. Stark: Proving Entailment Between Conceptual State Specifications. European Symposium on Programming, Saarbrücken, LNCS 213, Springer-Verlag, 1986, pages 197–209.Google Scholar
  22. [22]
    Jørgen Staunstrup & Mark Greenstreet: Synchronized Transitions. In Jørgen Staustrup (ed) Formal Methods for VLSI Design, North-Holland, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • Peter Grønning
    • 1
  • Thomas Qvist Nielsen
    • 1
  • Hans Henrik Løvengreen
    • 1
  1. 1.Department of Computer ScienceTechnical University of DenmarkLyngbyDenmark

Personalised recommendations