Summary
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.
Similar content being viewed by others
References
Ashcroft, E. A., Manna, Z.: Formalization of properties of parallel programs. Machine Intelligence 6. Edinburgh: University of Edinburgh Press 1971, p. 17–41
Ashcroft, E. A.: Proving assertions about parallel programs. Dept of Computer Science, University of Waterloo, CS 73-01, 1973
Cadiou, J. M., Levy, J. J.: Mechanical proofs about parallel processes. Proc. 14 Annual IEEE Symposium on Switching and Automata Theory, 1973, p. 34–48
Clint, M.: Program proving: coroutines. Acta Informatica 2, 50–63 (1973)
Cook, S. A.: Axiomatic and interpretive semantics for an Algol fragment. Dept. of Computer Science, Toronto, TR 79, 1975.
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, 1975
Gries, D.: An exercise in proving properties of parallel programs. (Submitted to Comm. ACM)
Habermann, A. N.: Synchronization of communicating processes. Comm. ACM 15, 171–176 (1972)
Hoare, C. A. R.: An axiomatic basis for computer programming. Comm. ACM 12, 576–580 (1969)
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 1972
Hoare, C. A. R., Lauer, P. E.: Consistent and complementary formal theories of the semantics of programming languages. Acta Informatica 3, 135–153 (1974)
Lauer, P. E.: Consistent formal theories of the semantics of programming languages. IBM Laboratory Vienna, TR 25.121, 1971
Lipton, R. J.: On synchronization primitive systems. Carnegie Mellon University, PhD Thesis, 1974
Lipton, R. J.: Reduction: a new method for proving properties of systems of processes. Yale Computer Science Research Report 30, 1974
Newton, G.: Proving properties of interacting processes. Acta Informatica
Owicki, S.: Axiomatic proof techniques for parallel programs. Computer Science Dept., Cornell University, PhD thesis, 1975
Rosen, B. K.: Correctness of parallel programs: the Church-Rosser approach. T. J. Watson Research Center, Yorktown Heights (N. Y.), IBM Research Report RC5107, 1974
Dijkstra, E. W.: The structure of the THE multiprogramming system. Comm. ACM 11, 341–347 (1968)
Owicki, S., Gries, D.: Axiomatic proof techniques for parallel programs II. In preparation
Author information
Authors and Affiliations
Additional information
This research was partially supported by National Science Foundation grant GJ-42512.
Rights and permissions
About this article
Cite this article
Owicki, S., Gries, D. An axiomatic proof technique for parallel programs I. Acta Informatica 6, 319–340 (1976). https://doi.org/10.1007/BF00268134
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00268134