introduction to uppaal - aalborg universitetpeople.cs.aau.dk › ~srba › courses › sv-05 ›...

38
Introduction to Uppaal Gerd Behrmann Aalborg University April 13, 2005 Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 1 / 37

Upload: others

Post on 26-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Introduction to Uppaal

Gerd Behrmann

Aalborg University

April 13, 2005

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 1 / 37

Page 2: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Outline

1 A short look at Uppaal

DemoArchitecture

2 Syntax of Uppaal

DeclarationsExpressionsLocations and synchronisationProperties

3 Train Gate Example

4 Verification OptionsHow Uppaal worksState space reduction techniquesReusing the state spaceState space representation techniques.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 2 / 37

Page 3: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Demo

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 3 / 37

Page 4: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Uppaal’s Architecture

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 4 / 37

Page 5: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Declarations

Clocksclock x1, x2,...,xn;

Bounded Integer Variables

int[0,5] i1, i2,... in; Default range is -32767;32768.

Constantsconst int delay = 5, a = 0;

Arrays

int x[4] = { 1, 4, 7, 2 };

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 5 / 37

Page 6: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

DeclarationsNew in version 3.5

Booleansbool b;

Records

struct { int a; int b; } a = { 1, 2 };

Type declarations

typedef struct { int a; int b; } A;

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 6 / 37

Page 7: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Expressions

Expression

::= ID

| NAT | ’true’ | ’false’

| Expression ’[’ Expression ’]’

| ’(’ Expression ’)’

| Expression ’++’ | ’++’ Expression

| Expression ’--’ | ’--’ Expression

| Expression AssignOp Expression

| UnaryOp Expression

| Expression BinOp Expression

| Expression ’?’ Expression ’:’ Expression

| ID ’.’ ID

| ID ’(’ [ Expression ( ’,’ Expression )* ] ’)’

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 7 / 37

Page 8: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Operators

Unary

’-’ | ’+’ | ’!’ | ’not’

Binary

’<’ | ’<=’ | ’==’ | ’!=’ | ’>=’ | ’>’

’+’ | ’-’ | ’*’ | ’/’ | ’%’ | ’&’

’|’ | ’^’ | ’<<’ | ’>>’ | ’&&’ | ’||’

’and’ | ’or’ | ’imply’

Assignment

’=’ | ’+=’ | ’-=’ | ’*=’ | ’/=’ | ’%=’

’|=’ | ’&=’ | ’^=’ | ’<<=’ | ’>>=’

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 8 / 37

Page 9: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Guards

Any expression satisfying the following conditions is a guard:

It is side effect free, type correct and evaluates to a boolean.

Only clock variables, integer variables and constants are referenced(or arrays of these types).

Clocks and differences between clocks are only compared to integerexpressions (no inequality).

Guards over clocks are essentially conjunctions (i.e. disjunctions areonly allowed over integer conditions).

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 9 / 37

Page 10: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Assignments

Any expression satisfying the following conditions is an assignment:

It has a side effect and is type correct.

Only clock variables, integer variables and constants are referenced(or arrays of these types).

Only integers are assigned to clocks.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 10 / 37

Page 11: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Invariants

Any expression satisfying the following conditions is an invariant:

It is side effect free and is type correct.

Only clock variables, integer variables and constants are referenced(or arrays of these types).

It forms a conjunction of conditions on the form x < e or x <= e,where x is a clock reference and e evaluates to an integer.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 11 / 37

Page 12: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

FunctionsNew in version 3.5

User defined functions can be declared globally or locally.

An extended subset of C.

Supports while, for, do while, if, return.

Tests on clock variables are not allowed.

Reset of clocks are allowed.

Always evaluated atomically:I No interleaving with other processes.I If your function does not return, neither does Uppaal.

Still experimental.

int sum(int a, int b)

{

return a + b;

}

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 12 / 37

Page 13: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Binary Synchronisation

Channels can be declared like:

chan a, b, c[3];

If a is channel, then:

a! is an emission

a? is a reception

Two edges in different processes can synchronise if one is emitting and theother is receiving on the same channel.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 13 / 37

Page 14: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Broadcast Synchronization

Broadcast channels can be de declared like:

broadcast chan a, b, c[2];

If a is a broadcast channel, then:

a! is an emission of a broadcast

a? is a reception of a broadcast

A set of edges in different processes can synchronise if one is emitting andthe others are receiving on the same broadcast channel. A process canalways emit on a broadcast channel.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 14 / 37

Page 15: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Urgency

Definition (Urgent State)

A state is urgent if either

a process is in an urgent location, or

an action transition on an urgent channel can be taken.

Definition (Semantics)

An urgent state has no delay transitions.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 15 / 37

Page 16: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Urgency

Urgent channels

urgent chan a,b,c[3];

Urgent locations

Right click location and mark it urgent.

Equivalent to having an invariant x ≤ 0 and reseting x beforeentering the location.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 16 / 37

Page 17: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Committed Locations

Definition (Committed Process)

A process is committed if it is in a committed location.

Definition (Committed State)

A state is committed if any of the processes is committed.

Definition (Semantics)

A committed state cannot delay.

A committed state only has action transitions involving at least onecommitted processes.

Main purpose of committed locations is to create atomic sequences oftransitions. Committed locations reduce the state space considerably byeliminating interleaving.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 17 / 37

Page 18: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Templates

Templates can be instantiated to form processes.

Templates are parameterised.

Call-by-value is the default (except for arrays).

Call-by-reference is used if identifier is prefixed with &.

Example of parameter declaration of a template A:

process A(int &v, const int min, const int max)

Example of instantiation:

P = A(i, 1, 5);

Q = A(j, 0, 4);

Example of system declaration:

system P, Q;

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 18 / 37

Page 19: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Syntax of Properties

A[] Expression

E<> Expression

A<> Expression

E[] Expression

Expression --> Expression

A[] not deadlock

The expressions must be type safe, side effect free, and evaluate to aboolean. Only references to integers variables, constants, clocks, andlocations are allowed (and arrays of these).

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 19 / 37

Page 20: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Operators A[] and A<>For all paths

A[]ϕ

ϕ

ϕ

ϕ

A<>ϕ

ϕ

ϕ ϕ

ϕ

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 20 / 37

Page 21: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Operators E[] and E<>There is a path

E[]ϕ

ϕ

E<>ϕ

ϕ

ϕ

Remark

¬(A[]ϕ)=E<>(¬ϕ) and ¬(E[]ϕ)=A<>(¬ϕ)

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 21 / 37

Page 22: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Operator -->Leads to (response)

ϕ --> ψdef⇐⇒ A[](ϕ⇒A<>ψ)

ϕ

ϕ

ψ

ψ

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 22 / 37

Page 23: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

State Property: deadlock

A deadlock is a state in which no action transition will ever be enabledagain.

In other words (l , u) |= deadlock iff:

∀d ≥ 0, a ∈ Act : (l , u + d) 6a

Checking for absence of deadlocks:

A[] not deadlock

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 23 / 37

Page 24: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Bounded Liveness

Whenever ϕ becomes true, then ψ becomes true within t.

ϕ-->≤tψ

≤ t

≤ t

ϕ

ϕ

ψ

ψ

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 24 / 37

Page 25: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Bounded LivenessReduction to unbounded liveness

We can reduce p -->≤t q to an unbounded liveness property:

Add a clock x and reset it whenever p becomes true.

Check p --> (q and x <= t).

p

q

x = 0

Care must be taken that x is not reset several times before q becomes true.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 25 / 37

Page 26: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Bounded LivenessReduction to reachability by decoration

We can reduce p -->≤t q to a reachability property:

Add a clock x and reset it whenever p becomes true.

Add a boolean b, set it to true when p starts to hold and to falsewhen p ceases to hold.

Check A[] (b implies x <= t).

p

qb = false

b = false

b = true, x = 0

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 26 / 37

Page 27: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Bounded LivenessReduction to reachability with test automaton

We can reduce p --><t q to a reachability property:

Add two broadcast channels a and b.

Send on a when p becomes true, on b when q becomes true.

Add a process that goes to an error state when the time between asignal on a and b reaches t.

Check A[] not Test.bad.

Works even when p becomes true several times before q.

p

qb!

b!

a!

x <= t

bad

a?x = 0

b?

x == t

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 27 / 37

Page 28: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

The Train Gate Example

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 28 / 37

Page 29: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Verification Options in Uppaal

Breadth-first

Depth-first

State space reduction

Reuse state space

State space representationI DBMI CompactI Under approximationI Over approximation

Diagnostic trace

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 29 / 37

Page 30: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Reachability analysis in Uppaal

waiting = {(l0,Z0 ∧ I (l0))}passed = ∅

while waiting 6= ∅ do

(l ,Z ) = select state from waiting

waiting = waiting \ {(l ,Z )}if testProperty(l ,Z ) then return true

if ∀(l ,Y ) ∈ passed : Z 6⊆ Y then

passed = passed ∪ {(l ,Z )}∀(l ′,Z ′) : (l ,Z ) ⇒ (l ′,Z ′) do

if ∀(l ′,Y ′) ∈ waiting : Z ′ 6⊆ Y ′then

waiting = waiting ∪ {(l ′,Z ′)}endif

done

endif

done

return false

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 30 / 37

Page 31: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

To store or not to storeState space reduction

For acyclic systems, a passed list is not needed to guaranteetermination.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 31 / 37

Page 32: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

To store or not to storeState space reduction

For acyclic systems, a passed list is not needed to guaranteetermination.

However, it is useful for efficiency.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 31 / 37

Page 33: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Loop entry pointsState space reduction

Only symbolic states involving loop-entrypoints need to be stored in the passed list toguarantee termination.

Loop entry point

Loop entry point

Options for state space reduction

None Store all states.

Conservative Store all non-committed states.

Aggressive Only store loop entry points.

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 32 / 37

Page 34: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Effect of reduction techniques

117 symbolic states

81 loop entry points.

9 states identified by more extensive analysis.

Less than 10% time overhead.Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 33 / 37

Page 35: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Reuse state space

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 34 / 37

Page 36: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Over-approximationConvex Hull

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 35 / 37

Page 37: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Under-approximationBit state hashing

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 36 / 37

Page 38: Introduction to Uppaal - Aalborg Universitetpeople.cs.aau.dk › ~srba › courses › SV-05 › slides › l11.pdfGerd Behrmann (Aalborg University) Introduction to Uppaal April 13,

Under-approximationBit state hashing

Gerd Behrmann (Aalborg University) Introduction to Uppaal April 13, 2005 37 / 37