Summary
We present a formal proof method for distributed programs. The semantics used to justify the proof method explicitly identifies equivalence classes of execution sequences which are equivalent up to permuting commutative operations. Each equivalence class is called an interleaving set or a run. The proof rules allow concluding the correctness of certain classes of properties for all execution sequences, even though such properties are demonstrated directly only for a subset of the sequences. The subset used must include a representative sequence from each interleaving set, and the proof rules, when applicable, guarantee that this is the case. By choosing a subset with appropriate sequences, simpler intermediate assertions can be used than in previous formal approaches. The method employs proof lattices, and is expressed using the temporal logic ISTL.
Similar content being viewed by others
References
Abrahamson K: Decidability and expressiveness of logics of programs. Ph.D. Thesis. University of Washington, Seattle 1980
Apt K, Francez N, Katz S: Appraising fairness in languages for distributed programming. Distribut. Comput. 2(4):226–241 (1988).
Apt, KR, Francez N, de Roever WP: A proof system for communicating sequential processes. ACM Trans. Program. Lang. Syst. 2:359–385 (1980)
Alpern B, Schneider FB: Defining liveness. Inf. Process. Lett. 21:181–185 (1985)
Chandy KM, Lamport L: Distributed snapshots: determining global states of distributed systems. ACM Trans. Comp. Syst. (3):63–75 (1985)
Chou CT, Gafni E: Understanding and verifying distributed algorithms using stratified decomposition. 7th Annual ACM Symposium on Principles of Distributed Computing 44–65 (1988)
Degano P, De Nicola R, Montanari U: Partial ordering for CCS. In: Budach L (ed.) Proceedings FCT 85. Lect. Notes Comput. Sci. Vol. 199. Springer, Berlin Heidelberg New York 1985, 520–533
Dijkstra EW: Guarded commands, nondeterminancy and formal derivation of programs. Commun. ACM 18:453–457 (1975)
Dijkstra EW: The distributed snapshot algorithm of K.M. Chandy and L. Lamport. EWD864a
Elrad T, Francez N: Decomposition of distributed programs into communication-closed layers. Sci. Comput Programm 2:155–173 (1982)
Emerson EA: Alternative semantics for temporal logic. Theor. Comput. Sci. 26:121–130 (1983)
Emerson EA, Halpern JY: “Sometimes” and “not never” revisited: on branching versus linear time temporal logic. J. ACM 33:151–178 (1986)
Francez N:Fairness. In: Gries D (ed.), Texts and monographs in computer science. Springer, Berlin Heidelberg New York 1986
Grümberg O, Francez N, Makowski JA, de Roever WP: A proof rule for termination of guarded commands. Inf. Contr. 66:83–102 (1985)
Hoare CAR: Communicating sequential processes. Commun. ACM 21:666–677 (1978)
Janicki R, Koutny M: Towards a theory of simulations for verification of concurrent systems. In: Odijk EM, Rem M, Syre JC (eds), PARLE '89, Lect Notes Comput Sci 366:73–88 (1989)
Katz S, Peled D: Interleaving set temporal logic. Theor. Comput. Sci. 75(3):263–287 (1990). Preliminary version in Proceedings of the 6th Annual ACM Symposium on Prinicples of Distributed Computing, Vancouver, Canada 1987, pp. 178–190
Katz S, Peled D: Defining conditional independence using collapses, to appear in Theor. Comput. Sci. Preliminary version in Workshop on Semantics for Concurrency Leicester England 1990
Katz S, Peled D: An efficient verification method for parallel and distributed programs. Proceedings of Workshop on Linear Time, Branching Time and Partial Orders, in Logics and Models for Concurrency. Lect. Notes Comput. Sci. vol. 354. Springer, Berlin Heidelberg New York 1988, 489–507
Kwiatkowska MZ: Fairness for Non-Interleaving Concurrency. Phd Thesis, Department of Computing Studies Leicester 1989
Lamport L: Paradigms for distributed programs: computing global states. In: Paul M, Siegart H (eds) Distributed systems — Methods and tools for specification. An advanced course. Munich. Lect Notes Comput Sci vol. 190. Springer, Berlin Heidelberg New York 1985, pp 454–468
Lehman D, Pnueli A, Stavi J: Impartiality, justice and fairness: the ethics of concurrent termination. Proc. of 8th International colloquium on Automata, Languages and Programming. Lect Notes Comput Sci 115:264–277 (1981)
Manna Z, Pnueli A: Verification of concurrent programs: the temporal framework. In: Boyer RS, Moore JS (eds) The correctness problem in computer science. Academic Press 1981, pp 215–273
Manna Z, Pnueli A: How to cook a temporal proof system for your pet language. 10th Symposium on Principles of Programming Languages. Austin Texas 1983, pp 141–154
Manna Z, Pnueli A: Completing the temporal picture. Proceedings 16th International Colloqium on Automata, Languages and Programming. Lect Notes Comput Sci 372:534–558 (1989)
Mazurkiewicz A: Trace semantics, Proceedings of advances in Petri nets 1986. Bad Honnel. Lect Notes Comput Sci 255:279–324 (1987)
Owicki S, Lamport L: Proving liveness properties of concurrent programs. ACM Trans Program Lang Syst 4:455–495
Peled D, Katz S, Pnueli A: Specifying and Proving Serializability in Temporal Logic. Proceedings of 6th annual IEEE symposium on Logic in Computer Science. Amsterdam 1991, pp 232–245
Peled D, Pnueli A: Proving partial order liveness properties. 17th International Colloquium on Automata, Languages and Programming. Warwick University England July 1990. Lect Notes Comput Sci, vol. 443. Springer, Berlin Heidelberg New York 1990, pp 553–571
Penczek W: A temporal logic for event structures, Fundamenta Informaticae, Vol. 11 (3), 297–326 (1988)
Petri CA: Kommunikation mit Automaten. Bonn: Institut für Instrumentelle Mathematik, Schriften des IIM Nr. 2 1962
Pnueli A: Applications of temporal logic to the specification and verification of reactive systems, a survey of current trends, in Current Trends in Concurrency. Lect Notes Comput Sci, vol. 224. Springer, Berlin Heidelberg New York 1986, pp 510–584
Reisig W: Partial order semantics versus interleaving semantics for CSP like languages and its impact on fairness, 11th ICALP, Antwerp Belgium. Lect Notes Comput Sci 172. Springer, Berlin Heidelberg New York 1984, pp 403–413
Reisig W: Temporal logic and causality in concurrent systems. In: Vogt FH (ed) CONCURRENCY 88. Lect Notes Comput Sci, vol 335. Springer, Berlin Heidelberg New York 1988, pp 121–139
Stomp FA, deRoever WP: Designing distributed algorithms by means of formal sequentially phased reasoning, Proceedings of the 3rd International Workshop on Distributed Algorithms. Lect Notes Comput Sci, vol 392. Springer, Berlin Heidelberg New York 1989
Valmari A: Stubborn sets for reduced state space generation, 10th International Conference on Application and Theory of Petri Nets. Bonn 1989 (2), pp 1–22
Valmari A: A stubborn attack on state explosion. In: Clarke E, Kurshan R (eds) Computer-aided Verification '90. Discrete Math, vol. 3. North-Holland, Amsterdam 1990, pp 25–42
Author information
Authors and Affiliations
Additional information
Shmuel Katz received his B.A. in Mathematics and English Literature from U.C.L.A., and his M.Sc. and Ph.D. in Computer Science (1976) from the Weizmann Institute in Rechovot, Israel. From 1976 to 1981 he was at the IBM Israel Scientific Center. Presently, he is on the faculty of the Computer Science Department at the Technion in Haifa, Israel. In 1977–1978 he visited for a year at the University of California, Berkeley, and in 1984–1985 was at the University of Texas at Austin. He has been a consultant and visitor at the MCC Software Technology Program, and in 1988–1989 was a visiting scientist at the I.B.M. Watson Research Center. His research interests include the methodology of programming, specification methods, program verification and semantics, distributed programming, data structures, and programming languages.
Doron Peled was born in 1962 in Haifa. He received his B.Sc. and M.Sc. in Computer Science from the Technion, Israel in 1984 and 1987, respectively. Between 1987 and 1991 he did his military service. He also completed his D.Sc. degree in the Technion during these years. Dr. Peled was with the Computer Science department at Warwick University in 1991–1992. He is currently a member of the technical staff with AT & T Bell Laboratories. His main research interests are specification and verification of programs, especially as related to partial order models, fault-tolerance and real-time. He is also interested in semantics and topology.
This research was carried out while the second author was at the Department of Computer Science, The Technion, Haifa 32000, Israel
Rights and permissions
About this article
Cite this article
Katz, S., Peled, D. Verification of distributed programs using representative interleaving sequences. Distrib Comput 6, 107–120 (1992). https://doi.org/10.1007/BF02252682
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF02252682