# An efficient verification method for parallel and distributed programs

## Abstract

We present a formal proof method which is based on a partial order semantics for parallel or distributed programs. In this view, a program's semantics is given by a collection of partial orders of the events which can occur during execution. Rather than using the partial orders directly, the basis of the method assumes the sets of (linear) execution sequences with global states which are consistent with each partial order (each such set is called an *interleaving set*). The proof rules allow concluding the correctness of certain classes of properties for all execution sequences, even though the property is only demonstrated directly for a subset of the execution sequences. The subset used must include a representative sequence from each interleaving set, and the proof rules guarantee that this is the case when they may be applied. The method employs proof lattices, and is expressed using the temporal logic ISTL*. By choosing a subset with appropriate sequences, simpler intermediate assertions can be used than in previous formal approaches. Moreover, since less direct checking must be done, the method is often much more efficient.

## Key words

Verification Partial order semantics Execution sequences Temporal logic Proof lattices## Preview

Unable to display preview. Download preview PDF.

## References

- [A]K. Abrahamson, Decidability and expressiveness of logics of programs, Ph.D. thesis, University of Washington at Seattle, 1980.Google Scholar
- [AFR]K.R. Apt, N. Francez, W.P. de Roever, A proof system for Communicating Sequential Processes, ACM TOPLAS Vol 2(1980), 359–385.CrossRefGoogle Scholar
- [CL]K.M. Chandy, L. Lamport, Distributed snapshots: determining global states of distributed systems, ACM Transactions on Computer Systems, Vol. 3, No. 1Google Scholar
- [DDM]P. Degano, R. De Nicola, U. Montanari, Partial ordering for CCS. In: Proceeding FCT 85, Lecture Notes in Computer Science, Springer-Verlag, 199, 520–533.Google Scholar
- [D1]E.W. Dijkstra, Guarded commands, Nondeterminancy and Formal Derivation of Programs, Communication of the ACM, 18(1975), 453–457.CrossRefGoogle Scholar
- [D2]E.W. Dijkstra, The distributed snapshot algorithm of K.M. Chandy and L. Lamport, EWD864a.Google Scholar
- [EF]Tz. Elrad, N. Francez, Decomposition of distributed programs into communication-closed layers, Science of Computer Programming 2(1982), 155–173CrossRefGoogle Scholar
- [E]E.A. Emerson, Alternative semantics for temporal logic, Theoretical Computer Science 26(1983), 121–130.CrossRefGoogle Scholar
- [EH]E.A. Emerson, J.Y. Halpern, "Sometimes" and "not never" revisited: on branching versus linear time temporal logic, Journal of the ACM 33(1986), 151–178. 30, 1985, 1–24.CrossRefGoogle Scholar
- [Fr]N. Francez,
*Fairness*, texts and monographs in computer science (D. Gries, ed.), Springer-Verlag, New York, 1986.Google Scholar - [H]C.A.R. Hoare, Communicating sequential processes, Communications of the ACM, 21 (1978), 666–677.CrossRefGoogle Scholar
- [KP]S. Katz, D. Peled, Interleaving Set Temporal Logic, 6
^{th}ACM Symposium on Principles of Distributed Computing, Vancouver, Canada, August 1987, 178–190.Google Scholar - [L]L. Lamport, Paradigms for distributed programs: computing global states, In: Distributed systems — Methods and tools for specification, An advanced course, Munich, 1985, Edited by M. Paul and H.J. Siegert, Lecture notes in Computer Science, Springer-Verlag, 190, 454–468.Google Scholar
- [MP1]Z. Manna, A. Pnueli, Verification of concurrent programs: the temporal framework, In: The correctness problem in computer science, Edited by R.S. Boyer & J.S. Moore, 1981, 215–273.Google Scholar
- [MP2]Z. Manna, A. Pnueli, How to cook a temporal proof system for your pet language, 10
^{th}Symposium on principles of programming languages, Austin, Texas, 1983, 141–154.Google Scholar - [M]A. Mazurkiewicz, Trace semantics, Proceedings of an advanced course, Bad Honnef, September 1986, Lecture Notes in Computer Science, 255.Google Scholar
- [OL]S. Owicki, L. Lamport, Proving liveness properties of concurrent programs, ACM transactions on Programming languages and Systems, 4, 1982, 455–495.CrossRefGoogle Scholar
- [Pe]C. A. Petri, Kommunikation mit Automaten, Bonn: Institut fur Instrumentelle Matematik, Schriften des IIM Nr. 2(1962).Google Scholar
- [Pn]A. Pnueli, Applications of temporal logic to the specification and verification of reactive systems, a survey of current trends.Google Scholar
- [R]W. Reisig, Partial order semantics versus interleaving semantics for CSP like languages and its impact on fairness, 11
^{th}ICALP, Antwerp, Belgium, 1984, Lecture notes in Computer Science, Springer-Verlag, 172, 403–413.Google Scholar