POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
On the temporal analysis of fairness
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
"Sometime" is sometimes "not never": on the temporal logic of programs
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The temporal logic of branching time
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Characterizing Correctness Properties of Parallel Programs Using Fixpoints
Proceedings of the 7th Colloquium on Automata, Languages and Programming
Synthesis of Communicating Processes from Temporal Logic Specifications
Logic of Programs, Workshop
Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic
Logic of Programs, Workshop
Decision procedures and expressiveness in the temporal logic of branching time
STOC '82 Proceedings of the fourteenth annual ACM symposium on Theory of computing
Verifying network protocols using temporal logic
Verifying network protocols using temporal logic
Alternative Semantics for Temporal Logics
Alternative Semantics for Temporal Logics
Using Branching Time Logic to Synthesize Synchronization Skeletons
Using Branching Time Logic to Synthesize Synchronization Skeletons
Decidability and expressiveness of logics of processes
Decidability and expressiveness of logics of processes
Reasoning about fair concurrent programs
STOC '86 Proceedings of the eighteenth annual ACM symposium on Theory of computing
Improved upper and lower bounds for modal logics of programs
STOC '85 Proceedings of the seventeenth annual ACM symposium on Theory of computing
Avoiding the state explosion problem in temporal logic model checking
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Extending Ina Jo with Temporal Logic
IEEE Transactions on Software Engineering
Hyperdocuments as automata: trace-based browsing property verification
ECHT '92 Proceedings of the ACM conference on Hypertext
Verifying infinite state processes with sequential and parallel composition
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The complexity of probabilistic verification
Journal of the ACM (JACM)
Hyperdocuments as automata: verification of trace-based browsing properties by model checking
ACM Transactions on Information Systems (TOIS)
Modalities for model checking (extended abstract): branching time strikes back
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Checking that finite state concurrent programs satisfy their linear specification
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A model and temporal proof system for networks of processes
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Expressing interesting properties of programs in propositional temporal logic
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Comments on 'Temporal Logic-Based Deadlock Analysis for Ada' by G.M. Karam and R.J.A. Burh
IEEE Transactions on Software Engineering
An Approach to Compositional Model Checking
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
Model Checking CTL+ and FCTL is Hard
FoSSaCS '01 Proceedings of the 4th International Conference on Foundations of Software Science and Computation Structures
From Implicit Specifications to Explicit Designs in Reactive System Development
IFM '02 Proceedings of the Third International Conference on Integrated Formal Methods
Automated verification using deduction, exploration, and abstraction
Programming methodology
STOC '84 Proceedings of the sixteenth annual ACM symposium on Theory of computing
Mathematical modal logic: a view of its evolution
Journal of Applied Logic
ACL '85 Proceedings of the 23rd annual meeting on Association for Computational Linguistics
Proceedings of the 6th international joint conference on Autonomous agents and multiagent systems
25 Years of Model Checking
Computation Tree Regular Logic for Genetic Regulatory Networks
ATVA '08 Proceedings of the 6th International Symposium on Automated Technology for Verification and Analysis
The Complexity of Satisfiability for Fragments of CTL and CTL*;
Electronic Notes in Theoretical Computer Science (ENTCS)
From Philosophical to Industrial Logics
ICLA '09 Proceedings of the 3rd Indian Conference on Logic and Its Applications
ICLA '09 Proceedings of the 3rd Indian Conference on Logic and Its Applications
Pillars of computer science
Expressing properties of resource-bounded systems: the logics RTL* and RTL
CLIMA'09 Proceedings of the 10th international conference on Computational logic in multi-agent systems
Theoretical Computer Science
Model checking strategic abilities of agents under incomplete information
ICTCS'05 Proceedings of the 9th Italian conference on Theoretical Computer Science
Model checking for process rewrite systems and a class of action-based regular properties
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Hi-index | 0.00 |
Temporal logic ([PR57], [PR67]) provides a formalism fordescribing the occurrence of events in time which is suitable forreasoning about concurrent programs (cf. [PN77]). In definingtemporal logic, there are two possible views regarding theunderlying nature of time. One is that time is linear: at eachmoment there is only one possible future. The other is that timehas a branching, tree-like nature: at each moment, time may splitinto alternate courses representing different possible futures.Depending upon which view is chosen, we classify (cf. [RU71]) asystem of temporal logic as either a linear time logic in which thesemantics of the time structure is linear, or a system of branchingtime logic based on the semantics corresponding to a branching timestructure. The modalities of a temporal logic system usuallyreflect the semantics regarding the nature of time. Thus,in a logicof linear time, temporal operators are provided for describingevents along a single time path (cf. [GPSS80]). In contract, in alogic of branching time the operators reflect the branching natureof time by allowing quantification over possible futures cf.[AB80],[EC80]).Some controversy has arisen in the computer science communityregarding the differences between and appropriateness of branchingversus linear time temporal logic. In a landmark paper [LA80]intended to "clarify the logical foundations of the application oftemporal logic to concurrent programs," Lamport addresses theseissues. He defines a single language based on the temporaloperators "always" and "sometimes". Two distinct interpretationsfor the language are given. In the first interpretation formulaemake assertions about paths, whereas in the second interpretationthey make assertions about states. Lamport associates the formerwith linear time and the latter with branching time (although itshould be noted that in both cases the underlying time structuresare branching). He then compares the expressive power of lineartime and branching time logic. Based on his comparison and otherarguments, he concludes that, while branching time logic issuitable for reasoning about nondeterministic programs, linear timelogic is preferable for reasoning about concurrent programs.In this paper, we re-examine Lamport's arguments and reachsomewhat different conclusions. We first point out some technicaldifficulties with the formalism of [LA80]. For instance, thedefinition of expressive equivalence leads to paradoxicalsituations where satisfiable formulae are classified as equivalentto false. Moreover, the proofs of the results comparing expressivepower do not apply in the case of structures generated by a binaryrelation like those used in the logics of [FL79] and [BMP81]. Wegive a more refined basis for comparing expressive power thatavoids these technical difficulties. It does turn out thatexpressibility results corresponding to Lamport's still hold.However, it should be emphasized that these results apply only tothe two particular systems that he defines. Sweeping conclusionsregarding branching versus linear time logic in general are notjustified on this basis.We will argue that there are several different aspects to theproblem of designing and reasoning about concurrent programs. Whilethe specific modalities needed in a logic depend on the precisenature of the purpose for which it is intended, we can make somegeneral observations regarding the choice between a system ofbranching or linear time. We believe that linear time logics aregenerally adequate for verifying the correctness of pre-existingconcurrent programs. For verification purposes, we are typicallyinterested in properties that hold of all computation paths. It isthus satisfactory to pick an arbitrary path and reason about it.However, there are applications where we need the ability to assertthe existence of alternative computation paths as provided by abranching time logic. This arises from the nondeterminism - beyondthat used to model concurrency - present in many concurrentprograms. In order to give a complete specification of such aprogram, we must ensure that there are viable computation path acorresponding to the nondeterministic choices the program mightmake. (An example is given in section 6.) Neither of Lamport'ssystems is entirely adequate for such applications.In order to examine these issues more carefully, we define alanguage, CTL*, in which a universal or existential path quantifiercan prefix an arbitrary linear time assertion. CTL* is an extensionof the Computation Tree Logic, CTL, defined in [CE81] and studiedin [EH82]. This language subsumes both of Lamport's interpretationsand allows us to compare branching with linear time. Moreover, thesyntax of CTL* makes it clear which interpretation is intended.The paper is organized as follows: In section 2 we summarizeLamport's approach and discuss its limitation. In section 3 wepresent the syntax and semantics of CTL*. We also define somenatural sublanguages of CTL* and compare their expressive power inSection 4. In particular, we show that (cf. Theorem 4.1) a languagesubstantially less expressive than CTL* still subsumes both ofLamport's interpretations. Section 5 then shows how CTL* can beembedded in MPL [AB80] and PL [HKP80]. Finally, section 6 concludeswith a comparison of the utility of branching and linear timelogic.