Skip to main content
Log in

The rely-guarantee method for verifying shared variable concurrent programs

  • Published:
Formal Aspects of Computing

Abstract

Compositional proof systems for shared variable concurrent programs can be devised by including the interference information in the specifications. The formalism falls into a category calledrely-guarantee (orassumption-commitment), in which a specification is explicitly (syntactically) split into two corresponding parts. This paper summarises existing work on the rely-guarantee method and gives a systematic presentation. A proof system for partial correctness is given first, thereafter it is demonstrated how the relevant rules can be adapted to verify deadlock freedom and convergence. Soundness and completeness, of which the completeness proof is new, are studied with respect to an operational model. We observe that the rely-guarantee method is in a sense a reformulation of the classical non-compositional Owicki & Gries method, and we discuss throughout the paper the connection between these two methods.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Apt, K. R.: Recursive assertions and parallel programs.Acta Informatica, Springer-Verlag, 1981.

  2. Abadi, M. and Lamport, L.: Conjoining specifications.ACM Trans. on Program. Lang. Syst., 17(3): 507–534, 1995.

    Google Scholar 

  3. Back, R. J. R.: Proving total correctness of nondeterministic programs in infinitary logic.Acta Informatica, Springer-Verlag, 1981.

  4. Brookes, S. D.: Full abstraction for a shared variable parallel language. InProc. 8th IEEE Int. Symp. on Logic in Computer Science, 1993.

  5. Collette, P.: Application of the composition principle to Unity-like specifications. In M.-C. Gaudel and J.-P. Jouannaud eds.,Proc, of TAPSOFT 93, LNCS 668, Springer-Verlag, 1993.

  6. Cook, S. A.: Soundness and completeness of an axiom system for program verification.SIAM Journal on Computing 7: 70–90, 1978.

    Google Scholar 

  7. de Roever, W. P.: The quest for compositionality. inProc:IFIP Working Conf. The Role of Abstract Models in Computer Science. North-Holland, 1985.

  8. Jones, C. B.:Development methods for computer programs including a notion of interference. DPhil. Thesis, Oxford University Computing Laboratory, 1981.

  9. Jones, C. B.: Accommodating interference in the formal design of concurrent objectbased programs.Formal Methods in System Design, 8(2): 105–121, 1996.

    Google Scholar 

  10. Jonsson, B. and Tsay, Y.-K.: Reasoning about assumption/guarantee specifications in linear-time temporal logic. InProc, of TAPSOFT 95, LNCS, Springer-Verlag, 1995.

  11. Lamport, L.: The temporal logic of actions.ACM Trans, on Program. Lang. Syst., 16(3): 872–923, 1995.

    Google Scholar 

  12. Misra, J. and Chandy, M.: Proofs of networks of processes.IEEE SE, 7(4): 417–426, 1981.

    Google Scholar 

  13. Moszkowski, B.: Some very compositional temporal properties, InProgramming Concepts, Methods and Calculi (A-56), E.-R. Olderog (Editor), Elsevier Science B.V. (North-Holland), pp. 307–326, 1994.

  14. Owicki, S. and Gries, D.: An axiomatic proof technique for parallel programs.Acta Inform. 6, pp. 319–340, Springer-Verlag, 1976.

  15. Plotkin, G. D.: A structural approach to operational semantics. Computer Science Department, Aarhus University, Technical Report, DAIMI FN-19,1981.

  16. Stirling, C.: A generalization of Owicki-Gries's Hoare logic for a concurrent while language.Theoretical Computer Science 58: 347–359, 1988.

    Google Scholar 

  17. Stølen, K.:Development of Parallel Programs on Shared Data-structures. Ph.D Thesis, Computer Science Department, Manchester University, 1990.

  18. Stølen, K.: An attempt to reason about shared-state concurrency in the style of VDM. in S. Prehn and W. J. Toetenel, editors,Proceedings of VDM 91, LNCS 551, Springer-Verlag, 1991.

  19. Stø1en, K.: A method for the development of totally correct shared-state parallel programs. In J.C.M. Baeten and J.F. Groote, editors,Proceedings of CONCUR 91, LNCS 527, Springer-Verlag, 1991.

  20. Stø1en, K.: Proving total correctness with respect to a fair (share-state) parallel language. InProceedings of BCS FACS 5th Refinement Workshop January 1992, London, Springer-Verlag.

    Google Scholar 

  21. Stø1en, K.: Shared-state design modulo weak and strong process fairness. InProceedings of 5th International Conference on Formal Description Techniques, October 1992, Perros-Guirec, France.

    Google Scholar 

  22. Woodcock, J. C. P. and Dickinson, B.: Using VDM with Rely and Guarantee-conditions, experiences from a real project. In2nd VDM-Europe Symposium, Dublin, Ireland, LNCS 328, Springer-Verlag, 1988.

    Google Scholar 

  23. Xu, Q.-W., de Roever, W.-P. and He, J.-R: Rely-guarantee method for verifying shared variable concurrent programs, report 9502. Christian-Albrechts-Universität zu Kiel, Germany, 1995.

    Google Scholar 

  24. Xu, Q.-W. and He, J.-F.: A theory of state-based parallel programming: Part 1. in J. Morris and R. Shaw, editors,Proceedings of BCS FACS 4th Refinement Workshop January 1991, Cambridge, Springer-Verlag.

    Google Scholar 

  25. Xu, Q.-W.:A theory of state-based parallel programming. DPhil. Thesis, Oxford University Computing Laboratory, 1992.

  26. Xu, Q.-W., Cau, A. and Collette, P.: On unifying assumption-commitment style proof rules for concurrency. In B. Jonsson and J. Parrow editors,Proceedings of CONCUR 94, LNCS 836, Springer-Verlag, 1994.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Qiwen Xu.

Additional information

The research was partially supported by Esprit-BRA project 6021 (REACT).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Xu, Q., de Roever, W.P. & He, J. The rely-guarantee method for verifying shared variable concurrent programs. Formal Aspects of Computing 9, 149–174 (1997). https://doi.org/10.1007/BF01211617

Download citation

  • Received:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01211617

Keywords

Navigation