Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Unit-7: Linear Temporal Logic
B. Srivathsan
Chennai Mathematical Institute
NPTEL-course
July - November 2015
1/13
Transition Systems
+ G, F, X, GF
+NuSMV
Automata
Unit: 4
BüchiAutomata
Unit: 5,6
LTL
Unit: 7,8
CTL
Unit: 9
State-spaceexplosion
Unit: 10
3/13
p1: (request=1) p2: (status=busy)
Atomic propositions
{ p1 } { p1,p2 }
{ p2 }{}
request=1ready
request=1busy
request=0ready
request=0busy
MODULE main
VARrequest: boolean;
status: {ready, busy}
ASSIGN
init(status) := ready;
next(status) := caserequest : busy;
TRUE : {ready,busy};
esac;
4/7
Transition System
AP = { p1, p2 }
Property
P
Transition system TS satisfies property P if
Traces(TS) ⊆ P
4/13
Specifying properties
G, F, X, GF Finite Automata ω-regular expressions
Here: Another formalism - Linear Temporal Logic
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}
p1
p2
p1 ∧ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬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,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ∧ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬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,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ∧ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬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,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ∧ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬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,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ∧ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬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,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ∧ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬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,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ∧ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬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,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ∧ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬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,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ∧ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬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,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ^ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬p1
X (p1 ^ ¬p2)
. . .{p1} {p1} {p1} {p2} {p1}
p1 U p2
� := true | pi | �1 ^ �2 | ¬�1 | X � | �1 U �2
pi 2AP �1,�2 : LTL formulas
6/6
. . .{p1} {p1} {} {p2} {p1}
¬(p1 U p2)
. . .{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
F p1
. . .{p1} {p1,p2} {p1} {p1,p2} {p1}
¬(true U ¬p1)
G p1
7/13
. . .{p1,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ^ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬p1
X (p1 ^ ¬p2)
. . .{p1} {p1} {p1} {p2} {p1}
p1 U p2
� := true | pi | �1 ^ �2 | ¬�1 | X � | �1 U �2
pi 2AP �1,�2 : LTL formulas
6/6. . .{p1} {p1} {} {p2} {p1}
¬(p1 U p2)
. . .{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
F p1
. . .{p1} {p1,p2} {p1} {p1,p2} {p1}
¬(true U ¬p1)
G p1
7/13
. . .{p1,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ^ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬p1
X (p1 ^ ¬p2)
. . .{p1} {p1} {p1} {p2} {p1}
p1 U p2
� := true | pi | �1 ^ �2 | ¬�1 | X � | �1 U �2
pi 2AP �1,�2 : LTL formulas
6/6. . .{p1} {p1} {} {p2} {p1}
¬(p1 U p2)
. . .{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
F p1
. . .{p1} {p1,p2} {p1} {p1,p2} {p1}
¬(true U ¬p1)
G p1
7/13
. . .{p1,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ^ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬p1
X (p1 ^ ¬p2)
. . .{p1} {p1} {p1} {p2} {p1}
p1 U p2
� := true | pi | �1 ^ �2 | ¬�1 | X � | �1 U �2
pi 2AP �1,�2 : LTL formulas
6/6. . .{p1} {p1} {} {p2} {p1}
¬(p1 U p2)
. . .{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
F p1
. . .{p1} {p1,p2} {p1} {p1,p2} {p1}
¬(true U ¬p1)
G p1
7/13
. . .{p1,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ^ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬p1
X (p1 ^ ¬p2)
. . .{p1} {p1} {p1} {p2} {p1}
p1 U p2
� := true | pi | �1 ^ �2 | ¬�1 | X � | �1 U �2
pi 2AP �1,�2 : LTL formulas
6/6. . .{p1} {p1} {} {p2} {p1}
¬(p1 U p2)
. . .{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
F p1
. . .{p1} {p1,p2} {p1} {p1,p2} {p1}
¬(true U ¬p1)
G p1
7/13
. . .{p1,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ^ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬p1
X (p1 ^ ¬p2)
. . .{p1} {p1} {p1} {p2} {p1}
p1 U p2
� := true | pi | �1 ^ �2 | ¬�1 | X � | �1 U �2
pi 2AP �1,�2 : LTL formulas
6/6. . .{p1} {p1} {} {p2} {p1}
¬(p1 U p2)
. . .{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
F p1
. . .{p1} {p1,p2} {p1} {p1,p2} {p1}
¬(true U ¬p1)
G p1
7/13
. . .{p1,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ^ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬p1
X (p1 ^ ¬p2)
. . .{p1} {p1} {p1} {p2} {p1}
p1 U p2
� := true | pi | �1 ^ �2 | ¬�1 | X � | �1 U �2
pi 2AP �1,�2 : LTL formulas
6/6. . .{p1} {p1} {} {p2} {p1}
¬(p1 U p2)
. . .{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 p1F p1
. . .{p1} {p1,p2} {p1} {p1,p2} {p1}
¬(true U ¬p1)
G p1
7/13
. . .{p1,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ^ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬p1
X (p1 ^ ¬p2)
. . .{p1} {p1} {p1} {p2} {p1}
p1 U p2
� := true | pi | �1 ^ �2 | ¬�1 | X � | �1 U �2
pi 2AP �1,�2 : LTL formulas
6/6. . .{p1} {p1} {} {p2} {p1}
¬(p1 U p2)
. . .{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 p1F p1
. . .{p1} {p1,p2} {p1} {p1,p2} {p1}
¬(true U ¬p1)G p1
7/13
Derived operators
É φ1 ∨ φ2: ¬(¬φ1 ∧ ¬φ2) (Or)
É φ1 → φ2: ¬φ1 ∨ φ2 (Implies)
É F φ: true U φ (Eventually)
É G φ: ¬ F ¬φ (Always)
8/13
. . . . . . . . . . . .φ φ φ
G F φ (Infinitely often)
. . . . . .φ φ φ φ
F G φ (Eventually forever)
9/13
. . . . . . . . . . . .φ φ φ
G F φ (Infinitely often)
. . . . . .φ φ φ φ
F G φ (Eventually forever)
9/13
non-crit wait
critexiting
y>0:y:=y-1y:=y+1PG1
non-crit wait
critexiting
y>0:y:=y-1y:=y+1PG2
NuSMV demo
12/15
non-crit wait
critexiting
y>0:y:=y-1y:=y+1PG1
non-crit wait
critexiting
y>0:y:=y-1y:=y+1PG2
NuSMV demo
12/15
|||
Atomic propositions AP = { crit1,wait1, crit2,wait2 }
crit1: pr1.location=crit wait1: pr1.location=wait
crit2: pr2.location=crit wait2: pr2.location=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
Summary
. . .{p1,p2} {p1,p2} {p2} {p1,p2} {p2}
p1
p2
p1 ^ p2
. . .{p2} { p1} {p2} {p2} {p2}
X p1
¬p1
X (p1 ^ ¬p2)
. . .{p1} {p1} {p1} {p2} {p1}
p1 U p2
� := true | pi | �1 ^ �2 | ¬�1 | X � | �1 U �2
pi 2AP �1,�2 : LTL formulas
6/6
Derived operators
… �1 _ �2: ¬(¬�1 ^ ¬�2) (Or)
… �1 ! �2: ¬�1 _ �2 (Implies)
… F �: true U � (Eventually)
… G �: ¬ F ¬� (Always)
8/12
Derived operators
… �1 _ �2: ¬(¬�1 ^ ¬�2) (Or)
… �1 ! �2: ¬�1 _ �2 (Implies)
… F �: true U � (Eventually)
… G �: ¬ F ¬� (Always)
8/12
13/13