A New Approach to Proving the Correctness of Multiprocess Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
Nondeterminism in logics of programs
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Process logic: preliminary report
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Axiomatic proof techniques for parallel programs.
Axiomatic proof techniques for parallel programs.
“Sometimes” and “not never” revisited: on branching versus linear time temporal logic
Journal of the ACM (JACM) - The MIT Press scientific computation series
Automatic verification of finite-state concurrent systems using temporal logic specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Reasoning about fair concurrent programs
STOC '86 Proceedings of the eighteenth annual ACM symposium on Theory of computing
The complexity of reasoning about knowledge and time
STOC '86 Proceedings of the eighteenth annual ACM symposium on Theory of computing
Detection of stable properties in distributed applications
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
A simple approach to specifying concurrent systems
Communications of the ACM
IEEE Transactions on Computers
Specification and verification of active message systems
SIGSMALL '90 Proceedings of the 1990 ACM SIGSMALL/PC symposium on Small systems
Core algorithms for autonomous monitoring of distributed systems
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
Formal specification of asynchronous distributed real-time systems by APTL
ICSE '92 Proceedings of the 14th international conference on Software engineering
A logic for reasoning about security
ACM Transactions on Computer Systems (TOCS)
Hyperdocuments as automata: trace-based browsing property verification
ECHT '92 Proceedings of the ACM conference on Hypertext
Hyperdocuments as automata: verification of trace-based browsing properties by model checking
ACM Transactions on Information Systems (TOIS)
Formal verification in hardware design: a survey
ACM Transactions on Design Automation of Electronic Systems (TODAES)
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
Locality in distributed computations
CSC '88 Proceedings of the 1988 ACM sixteenth annual conference on Computer science
An automata-theoretic approach to branching-time model checking
Journal of the ACM (JACM)
An automata-theoretic approach to modular model checking
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proving Liveness Properties of Concurrent Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specifying Concurrent Program Modules
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proving Failure-Free Properties of Concurrent Systems Using Temporal Logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
An infinite hierarchy of temporal logics over branching time
Information and Computation
Expressing interesting properties of programs in propositional temporal logic
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
"Sometimes" and "not never" revisited: on branching versus linear time (preliminary report)
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN 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
Modular verification of concurrent programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Some Considerations on Branching Areas of Time
Journal of Logic, Language and Information
Comments on 'Temporal Logic-Based Deadlock Analysis for Ada' by G.M. Karam and R.J.A. Burh
IEEE Transactions on Software Engineering
LPAR '01 Proceedings of the Artificial Intelligence on Logic for Programming
LPAR '02 Proceedings of the 9th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
Why so Many Temporal Logics Climb up the Trees?
MFCS '00 Proceedings of the 25th International Symposium on Mathematical Foundations of Computer Science
Model Checking: A Tutorial Overview
MOVEP '00 Proceedings of the 4th Summer School on Modeling and Verification of Parallel Processes
Branching vs. Linear Time: Final Showdown
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
VMCAI '02 Revised Papers from the Third International Workshop on Verification, Model Checking, and Abstract Interpretation
CONCUR '99 Proceedings of the 10th International Conference on Concurrency Theory
Open Systems in Reactive Environments: Control and Synthesis
CONCUR '00 Proceedings of the 11th International Conference on Concurrency Theory
Expressive Power of Temporal Logics
CONCUR '02 Proceedings of the 13th International Conference on Concurrency Theory
COMPOS'97 Revised Lectures from the International Symposium on Compositionality: The Significant Difference
Model Checking CTL+ and FCTL is Hard
FoSSaCS '01 Proceedings of the 4th International Conference on Foundations of Software Science and Computation Structures
Linking Theorem Proving and Model-Checking with Well-Founded Bisimulation
CAV '99 Proceedings of the 11th International Conference on Computer Aided Verification
Model checking: a tutorial overview
Modeling and verification of parallel processes
PCK50 Proceedings of the Paris C. Kanellakis memorial workshop on Principles of computing & knowledge: Paris C. Kanellakis memorial workshop on the occasion of his 50th birthday
Handbook of automated reasoning
Qualitative spatiotemporal representation and reasoning: a computational perspective
Exploring artificial intelligence in the new millennium
Verifying real-time properties of MOS-transistor circuits
EDTC '95 Proceedings of the 1995 European conference on Design and Test
Resource controller tasks in ADA: Their structure and semantics
ICSE '84 Proceedings of the 7th international conference on Software engineering
Decision procedures and expressiveness in the temporal logic of branching time
STOC '82 Proceedings of the fourteenth annual ACM symposium on Theory of computing
Specifying and proving properties of sentinel processes
ICSE '81 Proceedings of the 5th international conference on Software engineering
Four combinators for concurrency
PODC '82 Proceedings of the first ACM SIGACT-SIGOPS symposium on Principles of distributed computing
A temporal logic for reasoning about partially ordered computations (Extended Abstract)
PODC '84 Proceedings of the third annual ACM symposium on Principles of distributed computing
Functional specification of synchronized processes based on modal logic
ICSE '82 Proceedings of the 6th international conference on Software engineering
STOC '84 Proceedings of the sixteenth annual ACM symposium on Theory of computing
Software engineering techniques and tools for high performance parallel systems
PAS '95 Proceedings of the First Aizu International Symposium on Parallel Algorithms/Architecture Synthesis
On temporal logic versus datalog
Theoretical Computer Science - Logic and complexity in computer science
An equivalence result for temporal logic
ACM SIGPLAN Notices
A note on knowledge-based programs and specifications
Distributed Computing
P-A logic: a compositional proof system for distributed programs
Distributed Computing
Checking Timed Büchi Automata Emptiness Efficiently
Formal Methods in System Design
Imcompleteness of States w.r.t traces in model Checking
Information and Computation
BTL2 and the expressive power of ECTL+
Information and Computation
A compositional approach to CTL* verification
Theoretical Computer Science - Formal methods for components and objects
Arity hierarchy for temporal logics
Theoretical Computer Science
25 Years of Model Checking
The Beginning of Model Checking: A Personal Perspective
25 Years of Model Checking
25 Years of Model Checking
DESIGN AND SYNTHESIS OF SYNCHRONIZATION SKELETONS USING BRANCHING TIME TEMPORAL LOGIC
25 Years of Model Checking
SPECIFICATION AND VERIFICATION OF CONURRENT SYSTEMS IN CESAR
25 Years of Model Checking
From Philosophical to Industrial Logics
ICLA '09 Proceedings of the 3rd Indian Conference on Logic and Its Applications
Electronic Notes in Theoretical Computer Science (ENTCS)
Information and Computation
The concept of nondeterminism: its development and implications for teaching
ACM SIGCSE Bulletin
Modeling time in computing: A taxonomy and a comparative survey
ACM Computing Surveys (CSUR)
Coordination as an Architectural Aspect
Electronic Notes in Theoretical Computer Science (ENTCS)
Incompleteness of states w.r.t. traces in model checking
Information and Computation
I do declare: consensus in a logic language
ACM SIGOPS Operating Systems Review
Abstract compositional analysis of iterated relations: a structural approach to complex state transition systems
Branching vs. linear time: semantical perspective
ATVA'07 Proceedings of the 5th international conference on Automated technology for verification and analysis
Pillars of computer science
On the complexity of branching-time logics
CSL'09/EACSL'09 Proceedings of the 23rd CSL international conference and 18th EACSL Annual conference on Computer science logic
Annotated probabilistic temporal logic
ACM Transactions on Computational Logic (TOCL)
Graded computation tree logic with binary coding
CSL'10/EACSL'10 Proceedings of the 24th international conference/19th annual conference on Computer science logic
Journal of Computer Security - 7th International Workshop on Issues in the Theory of Security (WITS'07)
A distributed platform based on web services for multimedia resource discovery
ISPDC'03 Proceedings of the Second international conference on Parallel and distributed computing
A formal specification and verification method for the prevention of denial of service
SP'88 Proceedings of the 1988 IEEE conference on Security and privacy
An abstract interpretation perspective on linear vs. branching time
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Model checking for database theoreticians
ICDT'05 Proceedings of the 10th international conference on Database Theory
FSTTCS '05 Proceedings of the 25th international conference on Foundations of Software Technology and Theoretical Computer Science
Evolution and reactivity for the web
Proceedings of the First international conference on Reasoning Web
Annotated Probabilistic Temporal Logic: Approximate Fixpoint Implementation
ACM Transactions on Computational Logic (TOCL)
Journal of Computer and System Sciences
Concurrency, Compositionality, and Correctness
Temporal representation and reasoning in artificial intelligence: A review
Mathematical and Computer Modelling: An International Journal
ACM Transactions on Computational Logic (TOCL)
Survey: Linear Temporal Logic Symbolic Model Checking
Computer Science Review
Generalized Mutual Exclusion with Semaphores Only
Fundamenta Informaticae
Hi-index | 0.02 |
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.