Acta Informatica

, Volume 6, Issue 4, pp 319–340 | Cite as

An axiomatic proof technique for parallel programs I

  • Susan Owicki
  • David Gries


A language for parallel programming, with a primitive construct for synchronization and mutual exclusion, is presented. Hoare's deductive system for proving partial correctness of sequential programs is extended to include the parallelism described by the language. The proof method lends insight into how one should understand and present parallel programs. Examples are given using several of the standard problems in the literature. Methods for proving termination and the absence of deadlock are also given.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ashcroft, E. A., Manna, Z.: Formalization of properties of parallel programs. Machine Intelligence 6. Edinburgh: University of Edinburgh Press 1971, p. 17–41Google Scholar
  2. 2.
    Ashcroft, E. A.: Proving assertions about parallel programs. Dept of Computer Science, University of Waterloo, CS 73-01, 1973Google Scholar
  3. 3.
    Cadiou, J. M., Levy, J. J.: Mechanical proofs about parallel processes. Proc. 14 Annual IEEE Symposium on Switching and Automata Theory, 1973, p. 34–48Google Scholar
  4. 4.
    Clint, M.: Program proving: coroutines. Acta Informatica 2, 50–63 (1973)Google Scholar
  5. 5.
    Cook, S. A.: Axiomatic and interpretive semantics for an Algol fragment. Dept. of Computer Science, Toronto, TR 79, 1975.Google Scholar
  6. 6.
    Dijkstra, E. W. et al.: On-the-fly garbage collection: an exercise in cooperation. In Working Material for the NATO Summer School on Language Hierarchies and Interfaces, Munich, 1975Google Scholar
  7. 7.
    Gries, D.: An exercise in proving properties of parallel programs. (Submitted to Comm. ACM)Google Scholar
  8. 8.
    Habermann, A. N.: Synchronization of communicating processes. Comm. ACM 15, 171–176 (1972)Google Scholar
  9. 9.
    Hoare, C. A. R.: An axiomatic basis for computer programming. Comm. ACM 12, 576–580 (1969)Google Scholar
  10. 10.
    Hoare, C. A. R.: Towards a theory of parallel programming. In: Hoare, C. A. R., Perrot, R. H. (eds.): Operating systems techniques. New York: Academic Press 1972Google Scholar
  11. 11.
    Hoare, C. A. R., Lauer, P. E.: Consistent and complementary formal theories of the semantics of programming languages. Acta Informatica 3, 135–153 (1974)Google Scholar
  12. 12.
    Lauer, P. E.: Consistent formal theories of the semantics of programming languages. IBM Laboratory Vienna, TR 25.121, 1971Google Scholar
  13. 13.
    Lipton, R. J.: On synchronization primitive systems. Carnegie Mellon University, PhD Thesis, 1974Google Scholar
  14. 14.
    Lipton, R. J.: Reduction: a new method for proving properties of systems of processes. Yale Computer Science Research Report 30, 1974Google Scholar
  15. 15.
    Newton, G.: Proving properties of interacting processes. Acta InformaticaGoogle Scholar
  16. 16.
    Owicki, S.: Axiomatic proof techniques for parallel programs. Computer Science Dept., Cornell University, PhD thesis, 1975Google Scholar
  17. 17.
    Rosen, B. K.: Correctness of parallel programs: the Church-Rosser approach. T. J. Watson Research Center, Yorktown Heights (N. Y.), IBM Research Report RC5107, 1974Google Scholar
  18. 18.
    Dijkstra, E. W.: The structure of the THE multiprogramming system. Comm. ACM 11, 341–347 (1968)Google Scholar
  19. 19.
    Owicki, S., Gries, D.: Axiomatic proof techniques for parallel programs II. In preparationGoogle Scholar

Copyright information

© Springer-Verlag 1976

Authors and Affiliations

  • Susan Owicki
    • 1
  • David Gries
    • 2
  1. 1.Computer Science Dept.Cornell UniversityIthacaUSA
  2. 2.Dept. of Computer ScienceCornell UniversityIthacaUSA

Personalised recommendations