An efficient verification method for parallel and distributed programs

Preliminary version
  • Shmuel Katz
  • Doron Peled
Technical Contributions
Part of the Lecture Notes in Computer Science book series (LNCS, volume 354)


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 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [A]
    K. Abrahamson, Decidability and expressiveness of logics of programs, Ph.D. thesis, University of Washington at Seattle, 1980.Google Scholar
  2. [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
  3. [CL]
    K.M. Chandy, L. Lamport, Distributed snapshots: determining global states of distributed systems, ACM Transactions on Computer Systems, Vol. 3, No. 1Google Scholar
  4. [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
  5. [D1]
    E.W. Dijkstra, Guarded commands, Nondeterminancy and Formal Derivation of Programs, Communication of the ACM, 18(1975), 453–457.CrossRefGoogle Scholar
  6. [D2]
    E.W. Dijkstra, The distributed snapshot algorithm of K.M. Chandy and L. Lamport, EWD864a.Google Scholar
  7. [EF]
    Tz. Elrad, N. Francez, Decomposition of distributed programs into communication-closed layers, Science of Computer Programming 2(1982), 155–173CrossRefGoogle Scholar
  8. [E]
    E.A. Emerson, Alternative semantics for temporal logic, Theoretical Computer Science 26(1983), 121–130.CrossRefGoogle Scholar
  9. [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
  10. [Fr]
    N. Francez, Fairness, texts and monographs in computer science (D. Gries, ed.), Springer-Verlag, New York, 1986.Google Scholar
  11. [H]
    C.A.R. Hoare, Communicating sequential processes, Communications of the ACM, 21 (1978), 666–677.CrossRefGoogle Scholar
  12. [KP]
    S. Katz, D. Peled, Interleaving Set Temporal Logic, 6th ACM Symposium on Principles of Distributed Computing, Vancouver, Canada, August 1987, 178–190.Google Scholar
  13. [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
  14. [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
  15. [MP2]
    Z. Manna, A. Pnueli, How to cook a temporal proof system for your pet language, 10th Symposium on principles of programming languages, Austin, Texas, 1983, 141–154.Google Scholar
  16. [M]
    A. Mazurkiewicz, Trace semantics, Proceedings of an advanced course, Bad Honnef, September 1986, Lecture Notes in Computer Science, 255.Google Scholar
  17. [OL]
    S. Owicki, L. Lamport, Proving liveness properties of concurrent programs, ACM transactions on Programming languages and Systems, 4, 1982, 455–495.CrossRefGoogle Scholar
  18. [Pe]
    C. A. Petri, Kommunikation mit Automaten, Bonn: Institut fur Instrumentelle Matematik, Schriften des IIM Nr. 2(1962).Google Scholar
  19. [Pn]
    A. Pnueli, Applications of temporal logic to the specification and verification of reactive systems, a survey of current trends.Google Scholar
  20. [R]
    W. Reisig, Partial order semantics versus interleaving semantics for CSP like languages and its impact on fairness, 11th ICALP, Antwerp, Belgium, 1984, Lecture notes in Computer Science, Springer-Verlag, 172, 403–413.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Shmuel Katz
    • 1
  • Doron Peled
    • 1
  1. 1.Department of Computer Science, TechnionHaifaIsrael

Personalised recommendations