B. Srivathsan: Chennai Mathematical Institute
B. Srivathsan: Chennai Mathematical Institute
B. Srivathsan
NPTEL-course
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
3/13
AP = { p1 , p2 }
{ 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
5/13
Specifying properties
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
φ := 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
φ := 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
φ := 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
φ := 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
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
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
:= 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
:= 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
É φ1 → φ2 : ¬φ1 ∨ φ2 (Implies)
É F φ: true U φ (Eventually)
É G φ: ¬ F ¬φ (Always)
8/13
GFφ (Infinitely often)
φ φ φ
... ... ... ...
9/13
GFφ (Infinitely often)
φ φ φ
... ... ... ...
φ φ φ φ
... ...
9/13
Coming next: More examples
10/13
Atomic propositions AP = { crit1 , wait1 , crit2 , wait2 }
11/13
É Safety: both processes cannot be in critical section simultaneously
G (¬crit1 ∨ ¬crit2 )
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)
… G :¬F ¬ (Always)
13/13