Abstract
An approach is presented for modeling networks of processes that communicate exclusively through message passing. A process (or a network) is defined by its set of possible behaviors, where each behavior is an abstraction of an infinite execution sequence of the process. The resulting model is simple and modular and facilitates information hiding. It can describe both synchronous and asynchronous networks. It supports recursively-defined networks and can characterize liveness properties such as progress of inputs and outputs, termination, and deadlock.
A sound and complete temporal proof system based on the model is presented. It is compositional — a specification of a network is formed naturally from specifications of its components.
Similar content being viewed by others
References
Apt KR (1981) Ten years of Hoare's logic: a survey — Part 1. ACM TOPLAS 3:431–483
Barringer H, Kuiper R, Pnueli A (1984) Now you may compose temporal logic specifications. Proc 16th ACM Symp. Theor Comput
Brock JD, Ackerman WB (1981) Scenarios: a model of nondeterminate computation. International Colloquium on Formalization of Programming Concepts
Brookes SD (1984) A semantics and proof system for communicating processes. Lect Notes Comput Sci 164:68–85
Chen ZC, Hoare CAR (1981) Partial correctness of communicating processes and protocols. Technical monograph PRG-20, Programming Research Group, Oxford University Computing Laboratory
Hewitt C, Baker HG (1977) Laws for communicating parallel processes. Proc IFIP 77:987–992
Hoare CAR (1983) Notes on communicating sequential processes. Technical Monograph PRG-33, Programming Research Group, Oxford University Computing Laboratory
Kahn G (1974) The semantics of a simple language for parallel programming. Inf Process pp 471–475
Kahn G, MacQueen DB (1977) Coroutines and networks of parallel processes. Proc IFIP 77:993–998
Lamport L (1983) What good is temporal logic? Proc IFIP 83:657–668
Levin GM, Gries D (1981) A proof technique for communicating sequential processes. Acta Inf 15:281–302
Manna Z. Pnueli A (1981a) Verification of concurrent programs, Part 1: The temporal framework. Tech Rep STAN-CS-81-836, Stanford University. June 1981
Manna Z. Pnueli A (1981 b) Verification of concurrent programs, Part 2: Temporal proof principles. Tech Rep STAN-CS-81-843, Stanford University. Sept 1981
Manna Z, Pnueli A (1983) How to cook a temporal proof system for your pet language. Proc. 10th ACM Sym Prince of Prog Lang. Jan 1983, pp 141–154
Milner R (1980) A calculus of communicating systems. Lect Notes Comput Sci 92
Misra J, Chandy KM (1981) Proofs of networks of processes. IEEE Trans Soft Eng SE-7, 4
Misra J, Chandy KM, Smith T (1982) Proving safety and liveness of communicating processes with examples. Proc SIGACT-SIGOPS Symp Princ of Distributed Computing, Aug 1982, pp 201–208
Nguyen V (1985a) A theory of processes. Ph. D. Thesis, Department of Computer Science, Cornell University
Nguyen V (1985b) The incompleteness of Misra and Chandy's proof systems. Inf Proc Lett (to appear)
Nguyen V, Demers A, Gries D, Owicki S (1985) Behavior: a temporal approach to process modeling. IBM Workshop on Logics of Programs. June 1985
Nguyen V, Gries D, Owicki S (1985) A model and temporal proof system for networks of processes. Proc 12th ACM Symp Princ of Prog Lang. Jan 1985, pp 121–131
Pratt V (1982) On the composition of processes. Proc 9th ACM Symp Princ of Prog Lang. Jan 1982, pp 213–223
Shapiro E, Takeuchi A (1983) Object-oriented programming in Concurrent Prolog. J New Generation Comput 1:25–48
Author information
Authors and Affiliations
Additional information
Van Nguyen received a B.S. degree from Monash University in 1982, an M.S. degree from Cornell University in 1983 and a Ph.D. degree from Cornell University in 1985. He has accepted a research position at the IBM Thomas J. Watson Research Center. His research interests include logics and semantics of programs, programming languages, program synthesis and distributed computing.
David Gries received a Ph.D. (actually, a Dr. rer. nat.) from the Munich Institute of Technology (Germany) in 1966. He was an assistant professor at Stanford from 1966 to 1969 and has been on the faculty of Computer Science at Cornell since 1969, where he is presently chairman of the department. He is known for his research in compilers (he is a co-author of the Alcor-Illinois 7090 Algol compiler, finished in 1964), for his research in programming methodology, and for his texts “Compiler Construction for Digital Computers” (1971) and “Science of Programming” (1981). He was a Guggenheim Fellow in 1984–85.
Susan Owicki received the B.S. degree in mathematics from Michigan State University in 1968. She then attended Cornell University as an NSF Fellow, receiving the M.S. and Ph.D. degrees in computer science in 1970 and 1975, respectively. From 1975 to 1976 she was an Assistant Professor in the Department of Computer Science at Cornell University. Since then she has been a member of the Department of Electrical Engineering at Stanford University, where she is currently an Associate Professor.
Dr. Owicki's research in the area of concurrent programming has included work in program verification, programming languages and methodology, and design of algorithms for concurrent systems. She has been particularly interested in problems in computer networks and distributed systems.
This work was supported by the NSF under grants MCS-81-03605, DCR-83-202-74, and DCR-83-123-19; by NASA under contract NAGW419; and by the third author's Guggenheim Fellowship
This paper is based on part of the first author's Ph.D. thesis
Rights and permissions
About this article
Cite this article
Nguyen, V., Demers, A., Gries, D. et al. A model and temporal proof system for networks of processes. Distrib Comput 1, 7–25 (1986). https://doi.org/10.1007/BF01843567
Issue Date:
DOI: https://doi.org/10.1007/BF01843567