Verification of concurrent programs, Part I: The temporal framework

This is the first in a series of reports describing the application of temporal logic to the specification and verification of concurrent programs. We first introduce temporal logic as a tool for reasoning about sequences of states. Models of concurrent programs based both on transition graphs and on linear-text representations are presented and the notions of concurrent and fair executions are defined. The general temporal language is then specialized to reason aboaut those execution sequences that are fair computations of a concurrent program. Subsequently, the language is used to describe properties of concurrent programs. The set of interesting properties is classified into invariance (safety), eventuality (liveness), and precedence (until) properties. Among the properties studied are: partial correctness, global invariance, clean behavior, mutual exclusion, absence of deadlock, termination, total correctness, intermittent assertions, accessibility, responsiveness, safe liveness, absence of unsolicited response, fair responsiveness, and precedence. In the following reports of this series, we will use the temporal formalism to develop proof methodologies for proving the properties discussed here.

[1]  John B. Shoven,et al.  I , Edinburgh Medical and Surgical Journal.

[2]  Johan Anthory Willem Kamp,et al.  Tense logic and the theory of linear order , 1968 .

[3]  Edsger W. Dijkstra,et al.  A constructive approach to the problem of program correctness , 1968 .

[4]  Nicholas Rescher,et al.  Temporal Logic = Library of Exact Philosophy, Vol. 3 , 1973 .

[5]  Rod M. Burstall,et al.  Program Proving as Hand Simulation with a Little Induction , 1974, IFIP Congress.

[6]  Robert M. Keller,et al.  Formal verification of parallel programs , 1976, CACM.

[7]  Zohar Manna,et al.  Is “sometime” sometimes better than “always”?: Intermittent assertions in proving program correctness , 1976, ICSE '76.

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

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

[10]  A. Pnueli The Temporal Semantics of Concurrent Programs , 1979, Theor. Comput. Sci..

[11]  Zohar Manna,et al.  The Modal Logic of Programs , 1979, ICALP.

[12]  Saharon Shelah,et al.  On the temporal analysis of fairness , 1980, POPL '80.

[13]  Zohar Manna,et al.  Logics of Programs , 1981, Lecture Notes in Computer Science.

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