Unit-7: Linear Temporal Logic
B. Srivathsan
Chennai Mathematical Institute
NPTEL-course
July - November 2015
1/13
Module 1:
Introduction to LTL
2/13
Transition Systems
+ G, F, X, GF
+ NuSMV
Büchi State-space
Automata LTL CTL
Automata explosion
Unit: 4 Unit: 5,6 Unit: 7,8 Unit: 9 Unit: 10
3/13
AP = { p1 , p2 }
Transition System Property
{ p1 } { p1 , p2 }
MODULE main
request=1 request=1
VAR
ready busy
request: boolean;
status: {ready, busy} P
ASSIGN
init(status) := ready;
next(status) := case
request=0 request=0
request : busy;
ready busy
TRUE : {ready,busy};
{} { p2 } esac;
Atomic
Transition propositions
system TS satisfies property P if
p1 : (request=1) p2 : (status=busy)
Traces(TS) ⊆ P
4/7
4/13
Specifying properties
G, F, X, GF Finite Automata ω-regular expressions
5/13
Specifying properties
G, F, X, GF Finite Automata ω-regular expressions
Here: Another formalism - Linear Temporal Logic
5/13
{p1 , p2 } {p1 , p2 } {p2 } {p1 , p2 } {p2 }
...
φ :=
6/13
{p1 , p2 } {p1 , p2 } {p2 } {p1 , p2 } {p2 }
...
φ := true |
6/13
p2 {p1 , p2 } {p1 , p2 } {p2 } {p1 , p2 } {p2 }
p1 ...
φ := true | pi |
pi ∈ AP
6/13
p2 {p1 , p2 } {p1 , p2 } {p2 } {p1 , p2 } {p2 }
p1 ...
p1 ∧ p2
φ := true | pi | φ1 ∧ φ2 |
pi ∈ AP φ1 , φ2 : LTL formulas
6/13
p2 {p1 , p2 } {p1 , p2 } {p2 } {p1 , p2 } {p2 }
p1 ...
p1 ∧ p2
φ := true | pi | φ1 ∧ φ2 | ¬φ1 |
pi ∈ AP φ1 , φ2 : LTL formulas
6/13
p2 {p1 , p2 } {p1 , p2 } {p2 } {p1 , p2 } {p2 }
p1 ...
p1 ∧ p2
¬p1 {p2 } { p1 } {p2 } {p2 } {p2 }
...
φ := true | pi | φ1 ∧ φ2 | ¬φ1 |
pi ∈ AP φ1 , φ2 : LTL formulas
6/13
p2 {p1 , p2 } {p1 , p2 } {p2 } {p1 , p2 } {p2 }
p1 ...
p1 ∧ p2
¬p1 {p2 } { p1 } {p2 } {p2 } {p2 }
X p1 ...
φ := true | pi | φ1 ∧ φ2 | ¬φ1 | X φ |
pi ∈ AP φ1 , φ2 : LTL formulas
6/13
p2 {p1 , p2 } {p1 , p2 } {p2 } {p1 , p2 } {p2 }
p1 ...
p1 ∧ p2
¬p1 {p2 } { p1 } {p2 } {p2 } {p2 }
X p1 ...
X (p1 ∧ ¬p2 )
φ := true | pi | φ1 ∧ φ2 | ¬φ1 | X φ |
pi ∈ AP φ1 , φ2 : LTL formulas
6/13
p2 {p1 , p2 } {p1 , p2 } {p2 } {p1 , p2 } {p2 }
p1 ...
p1 ∧ p2
¬p1 {p2 } { p1 } {p2 } {p2 } {p2 }
X p1 ...
X (p1 ∧ ¬p2 )
{p1 } {p1 } {p1 } {p2 } {p1 }
p1 U p2 ...
φ := true | pi | φ1 ∧ φ2 | ¬φ1 | X φ | φ1 U φ2
pi ∈ AP φ1 , φ2 : LTL formulas
6/13
p1 U p2 ...
:= true | pi | 1 ^ 2 |¬ 1 | X | 1 U 2
pi 2 AP 1, 2 : LTL formulas
6/6
7/13
p1 U p2 ...
:= true | pi | 1 ^ 2 |¬ 1 | X | 1 U 2
p 2 AP 1, : LTL formulas
{p1 } i {p1 } 2
{} {p2 } {p1 }
¬(p1 U p2 ) ...
6/6
7/13
p1 U p2 ...
:= true | pi | 1 ^ 2 |¬ 1 | X | 1 U 2
p 2 AP 1, : LTL formulas
{p1 } i {p1 } 2
{} {p2 } {p1 }
¬(p1 U p2 ) ...
6/6
{p1 , p3 } {p1 } {p1 } {p2 } {p1 , p3 }
p1 U (p2 ∧ X p3 ) ...
7/13
p1 U p2 ...
:= true | pi | 1 ^ 2 |¬ 1 | X | 1 U 2
p 2 AP 1, : LTL formulas
{p1 } i {p1 } 2
{} {p2 } {p1 }
¬(p1 U p2 ) ...
6/6
{p1 , p3 } {p1 } {p1 } {p2 } {p1 , p3 }
p1 U (p2 ∧ X p3 ) ...
{p1 } {} {} {p2 } {p1 }
X (¬p1 U p2 ) ...
7/13
p1 U p2 ...
:= true | pi | 1 ^ 2 |¬ 1 | X | 1 U 2
p 2 AP 1, : LTL formulas
{p1 } i {p1 } 2
{} {p2 } {p1 }
¬(p1 U p2 ) ...
6/6
{p1 , p3 } {p1 } {p1 } {p2 } {p1 , p3 }
p1 U (p2 ∧ X p3 ) ...
{p1 } {} {} {p2 } {p1 }
X (¬p1 U p2 ) ...
{p2 } {p3 } {p2 } {} {p1 }
true U p1 ...
7/13
p1 U p2 ...
:= true | pi | 1 ^ 2 |¬ 1 | X | 1 U 2
p 2 AP 1, : LTL formulas
{p1 } i {p1 } 2
{} {p2 } {p1 }
¬(p1 U p2 ) ...
6/6
{p1 , p3 } {p1 } {p1 } {p2 } {p1 , p3 }
p1 U (p2 ∧ X p3 ) ...
{p1 } {} {} {p2 } {p1 }
X (¬p1 U p2 ) ...
{p2 } {p3 } {p2 } {} {p1 }
true U p1 ...
{p1 } {p1 , p2 } {p1 } {p1 , p2 } {p1 }
¬(true U ¬p1 ) ...
7/13
p1 U p2 ...
:= true | pi | 1 ^ 2 |¬ 1 | X | 1 U 2
p 2 AP 1, : LTL formulas
{p1 } i {p1 } 2
{} {p2 } {p1 }
¬(p1 U p2 ) ...
6/6
{p1 , p3 } {p1 } {p1 } {p2 } {p1 , p3 }
p1 U (p2 ∧ X p3 ) ...
{p1 } {} {} {p2 } {p1 }
X (¬p1 U p2 ) ...
{p2 } {p3 } {p2 } {} {p1 }
F p1 true U p1 ...
{p1 } {p1 , p2 } {p1 } {p1 , p2 } {p1 }
¬(true U ¬p1 ) ...
7/13
p1 U p2 ...
:= true | pi | 1 ^ 2 |¬ 1 | X | 1 U 2
p 2 AP 1, : LTL formulas
{p1 } i {p1 } 2
{} {p2 } {p1 }
¬(p1 U p2 ) ...
6/6
{p1 , p3 } {p1 } {p1 } {p2 } {p1 , p3 }
p1 U (p2 ∧ X p3 ) ...
{p1 } {} {} {p2 } {p1 }
X (¬p1 U p2 ) ...
{p2 } {p3 } {p2 } {} {p1 }
F p1 true U p1 ...
{p1 } {p1 , p2 } {p1 } {p1 , p2 } {p1 }
G p1 ¬(true U ¬p1 ) ...
7/13
Derived operators
É φ1 ∨ φ2 : ¬(¬φ1 ∧ ¬φ2 ) (Or)
É φ1 → φ2 : ¬φ1 ∨ φ2 (Implies)
É F φ: true U φ (Eventually)
É G φ: ¬ F ¬φ (Always)
8/13
GFφ (Infinitely often)
φ φ φ
... ... ... ...
9/13
GFφ (Infinitely often)
φ φ φ
... ... ... ...
FGφ (Eventually forever)
φ φ φ φ
... ...
9/13
Coming next: More examples
10/13
Atomic propositions AP = { crit1 , wait1 , crit2 , wait2 }
crit1 : pr1.location=crit wait1 : pr1.location=wait
crit2 : pr2.location=crit wait2 : pr2.location=wait
non-crit wait non-crit wait
PG1 y:=y+1 y>0:y:=y-1 |||1
PG y:=y+1 y>0:y:=y-1
exiting crit exiting crit
non-crit wait non-crit wait
11/13
É Safety: both processes cannot be in critical section simultaneously
G (¬crit1 ∨ ¬crit2 )
É Liveness: each process visits critical section infinitely often
G F crit1 ∧ G F crit2
12/13
1 2
Summary
{p1 } {p1 } {p1 } {p2 } Derived
{p } 1
operat
p1 U p2 ...
Derived operators
… _ : 1 2 ¬ (¬ 1 ^ ¬ 2) (Or)
:= true | pi | 1 ^ 2 |¬ 1 | X | 1 U 2
pi 2 AP 1 , 2 : LTL formulas
…
…
1 _ 2: ¬ (¬ 1 ^ ¬ 2) (Or) 1 ! 2: ¬ 1 _ 2 (Implies)
6/6
… … F : true U (Eventually)
1 ! 2: ¬ 1 _ 2 (Implies)
… F : true U (Eventually) … G :¬F ¬ (Always)
… G :¬F ¬ (Always)
13/13