Chapter 5 Linear Temporal Logic
This chapter introduces (propositional) linear temporal logic (LTL), a form of logic suitable for specifying LT properties. Defines the syntax and semantics of linear sequential logic. Various examples are provided showing how to use linear sequential logic to specify important system properties. The second part of this chapter deals with LTL model checking algorithms based on Büchi automata
5.1 Linear Temporal Logic
The nature of time in temporal logic can be linear or branching. In the linear view, each moment has a single subsequent moment, while in the branched view, it has a branching tree structure where time can be divided into different processes. This chapter discusses LTL (Linear Temporal Logic), a temporal logic based on a linear time perspective. Chapter 6 introduces CTL (Computational Tree Logic), a logic based on branch time view. Some model checking tools use LTL (or a slight variant of it) as the attribute specification language. The model checker SPIN is a prominent example of such an automated verification tool. One of the main advantages of LTL is that imposing fairness assumptions (such as strong fairness and weak fairness) does not require the use of any new mechanisms: typical fairness assumptions can all be specified in LTL. Verification of LTL formulas under fairness constraints can be accomplished using the LTL algorithm. This does not apply to CTL.
5.1.1 Syntax (syntax)
Example 5.2. Properties for the Mutual Exclusion Problem
Example 5.3. Properties for the dining philosophers
Example 5.4. Properties for a Traffic Light
5.1.2 Semantics
Definition 5.6. Semantics of LTL (Interpretation over Words)
Definition 5.7. Semantics of LTL over Paths and States
Example 5.8. Semantics of LTL
5.1.3 Specifying Properties
Example 5.11. Modulo 4 Counter
Example 5.12. A Communication Channel
Example 5.13. Dynamic Leader Election