An introduction to assertional reasoning for concurrent systems

This is a tutorial introduction to assertional reasoning based on temporal logic. The objective is to provide a working familiarity with the technique. We use a simple system model and a simple proof system, and we keep to a minimum the treatment of issues such as soundness, completeness, compositionality, and abstraction. We model a concurrent system by a state transition system and fairness requirements. We reason about such systems using Hoare logic and a subset of linear-time temporal logic, specifically, invariant assertions and leads-to assertions. We apply the method to several examples.

[1]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[2]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[3]  A. Udaya Shankar,et al.  A stepwise refinement heuristic for protocol construction , 1987, TOPL.

[4]  Zohar Manna,et al.  Adequate Proof Principles for Invariance and Liveness Properties of Concurrent Programs , 1984, Sci. Comput. Program..

[5]  Gregory R. Andrews,et al.  Concepts for Concurrent Programming , 1986, Current Trends in Concurrency.

[6]  Amir Pnueli,et al.  Impartiality, Justice and Fairness: The Ethics of Concurrent Termination , 1981, ICALP.

[7]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[8]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[9]  Ralph-Johan Back,et al.  Distributed cooperation with action systems , 1988, TOPL.

[10]  Amir Pnueli,et al.  In Transition From Global to Modular Temporal Reasoning about Programs , 1989, Logics and Models of Concurrent Systems.

[11]  Donald E. Knuth Verification of link-level protocols , 1981, BIT Comput. Sci. Sect..

[12]  Leslie Lamport,et al.  Proving Liveness Properties of Concurrent Programs , 1982, TOPL.

[13]  Gregory R. Andrews,et al.  A Method for Solving Synchronization Problems , 1989, Sci. Comput. Program..

[14]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[15]  Amir Pnueli The Temporal Semantics of Concurrent Programs , 1981, Theor. Comput. Sci..

[16]  Jan van Leeuwen,et al.  Assertional Verification of a Majority Consensus Algorithm for Concurrency Control in Multiple Copy Databases , 1988, Concurrency.

[17]  Cengiz Alaettinoglu,et al.  Stepwise Assertional Design of Distance-Vector Routing Algorithms , 1992, PSTV.

[18]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, Language Hierarchies and Interfaces.

[19]  Edsger W. Dijkstra A Correctness Proof for Communicating Processes: A Small Exercise , 1982 .

[20]  Leslie Lamport,et al.  Proving the Correctness of Multiprocess Programs , 1977, IEEE Transactions on Software Engineering.

[21]  Amir Pnueli,et al.  The temporal logic of programs , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[22]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[23]  Leslie Lamport,et al.  Artificial Intelligence and Language Processing ]acques Cohen Editor a Simple Approach to Specifying Concurrent Systems , 2022 .

[24]  A. J. M. van Gasteren,et al.  Derivation of a Termination Detection Algorithm for Distributed Computations , 1983, Inf. Process. Lett..

[25]  Jan van Leeuwen,et al.  The Derivation of Graph Marking Algorithms From Distributed Termination Detection Protocols , 1988, Sci. Comput. Program..

[26]  Gerard Tel Assertional Verification of a Timer Based Protocol , 1988, ICALP.

[27]  Kaisa Sere,et al.  Stepwise Refinement of Parallel Algorithms , 1990, Sci. Comput. Program..

[28]  Leslie Lamport,et al.  An Assertional Correctness Proof of a Distributed Algorithm , 1982, Sci. Comput. Program..

[29]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[30]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[31]  Ralph-Johan Back,et al.  Decentralization of Process Nets with Centralized Control , 1983, PODC.

[32]  K. Mani Chandy,et al.  An example of stepwise refinement of distributed programs: quiescence detection , 1986, TOPL.

[33]  Brent Hailpern,et al.  Modular Verification of Computer Communication Protocols , 1983, IEEE Trans. Commun..

[34]  Martín Abadi,et al.  The existence of refinement mappings , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[35]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[36]  Sandra L. Murphy,et al.  Connection management for the transport layer: service specification and protocol verification , 1991, IEEE Trans. Commun..

[37]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[38]  A. Prasad Sistla,et al.  Distributed algorithms for ensuring fair interprocess communicatons , 1984, PODC '84.

[39]  Leslie Lamport,et al.  A fast mutual exclusion algorithm , 1987, TOCS.

[40]  Simon S. Lam,et al.  An HDLC Protocol and Its Verification Using Image Protocols , 1982 .

[41]  Martín Abadi,et al.  Composing specifications , 1989, TOPL.

[42]  A. Udaya Shankar,et al.  A Relational Notation for State Transition Systems , 1990, IEEE Trans. Software Eng..

[43]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

[44]  Leslie Lamport,et al.  What Good is Temporal Logic? , 1983, IFIP Congress.

[45]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[46]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[47]  A. Udaya Shankar,et al.  Verified data transfer protocols with variable flow control , 1989, TOCS.

[48]  Edsger W. Dijkstra,et al.  Termination Detection for Diffusing Computations , 1980, Inf. Process. Lett..