ACM Home Page
Please provide us with feedback. Feedback
"Sometime" is sometimes "not never": on the temporal logic of programs
Full text PdfPdf (1.27 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Las Vegas, Nevada
Pages: 174 - 185  
Year of Publication: 1980
ISBN:0-89791-011-7
Author
Leslie Lamport  SRI International
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 85,   Citation Count: 54
Additional Information:

abstract   references   cited by   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/567446.567463
What is a DOI?

ABSTRACT

Pnueli [15] has recently introduced the idea of using temporal logic [18] as the logical basis for proving correctness properties of concurrent programs. This has permitted an elegant unifying formulation of previous proof methods. In this paper, we attempt to clarify the logical foundations of the application of temporal logic to concurrent programs. In doing so, we will also clarify the relation between concurrency and nondeterminism, and identify some problems for further research.In this paper, we consider logics containing the temporal operators "henceforth" (or "always") and "eventually" (or "sometime"). We define the semantics of such a temporal logic in terms of an underlying model that abstracts the fundamental concepts common to almost all the models of computation which have been used. We are concerned mainly with the semantics of temporal logic, and will not discuss in any detail the actual rules for deducing theorems.We will describe two different temporal logics for reasoning about a computational model. The same formulas appear in both logics, but they are interpreted differently. The two interpretations correspond to two different ways of viewing time: as a continually branching set of possibilities, or as a single linear sequence of actual events. The temporal concepts of "sometime" and "not never" ("not always not") are equivalent in the theory of linear time, but not in the theory of branching time -- hence, our title. We will argue that the logic of linear time is better for reasoning about concurrent programs, and the logic of branching time is better for reasoning about nondeterministic programs.The logic of linear time was used by Pnueli in [15], while the logic of branching time seems to be the one used by most computer scientists for reasoning about temporal concepts. We have found this to cause some confusion among our colleagues, so one of our goals has been to clarify the formal foundations of Pnueli's work.The following section gives an intuitive discussion of temporal logic, and Section 3 formally defines the semantics of the two temporal logics. In Section 4, we prove that the two temporal logics are not equivalent, and discuss their differences. Section 5 discusses the problems of validity and completeness for the temporal logics. In Section 6, we show that there are some important properties of the computational model that cannot be expressed with the temporal operators "henceforth" and "eventually", and define more general operators.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Krzystof R. Apt. Recursive Assertions and Parallel Progams, 2 October 1979.
 
2
Stephen A. Cook. Soundness and Completeness of an Axiom System for Program Verification. SIAM J. Comput. 7, 1 (February 1978), 70-90.
 
3
L. Flon and N. Suzuki. Consistent and Complete Proof Rules for the Total Correctness of Parallel Programs. Proceedings of 19th Annual Symp. on Found. of Comp. Sci., IEEE, October, 1978.
 
4
R. W. Floyd. Assigning Meanings to Programs. Proc. Symposium on Applied Math., Vol. 19, Amer. Math. Soc., 1967, pp. 19-32.
 
5
N. Francez and A. Pnueli. A Proof Method for Cyclic Programs. Proceedings of the 1976 International Conference on Parallel Processing, IEEE, 1976, pp. 235-245.
 
6
D. Gabbay, A. Pnueli, S. Shelah and Y. Stavi. Completeness Results for the Future Fragment of Temporal Logic.
7
 
8
David Harel. On the Total Correctness of Nondeterministic Programs. RC 7691, IBM T.J. Watson Research Center, 1979. To appear in Theoretical Computer Science.
 
9
L. Lamport. Proving the Correctness of Multiprocess Programs. IEEE Trans. on Software Engineering SE-3, 2 (March 1977), 125-143.
 
10
L. Lamport. The 'Hoare Logic' of Concurrent Programs. CSL-79, SRI International, October, 1978.
11
12
 
13
 
14
S. Owicki and D. Gries. An Axiomatic Proof Technique for Parallel Programs. Acta Informatica 6, 4 (1976), 319-340.
 
15
A. Pnueli. The Temporal Logic of Programs. 18th Annual Symposium on the Foundations of Computer Science, IEEE, November, 1977.
 
16
V. R. Pratt. Semantical Considerations on Floyd-Hoare Logic. 17th Symposium on Foundations of Computer Science, IEEE, October, 1976.
17
 
18
N. Rescher and A. Urquhart. Temporal Logic. Springer-Verlag, New York, 1971.

CITED BY  54