mcrl2 and visualization of state spaces
Download
Skip this Video
Download Presentation
mCRL2 and Visualization of State Spaces

Loading in 2 Seconds...

play fullscreen
1 / 66

mCRL2 and Visualization of State Spaces - PowerPoint PPT Presentation


  • 102 Views
  • Uploaded on

mCRL2 and Visualization of State Spaces. Bas Ploeger [email protected] mCRL2 and Visualization of State Spaces. Bas Ploeger [email protected] Behavioral models of software. Manual analysis techniques. Tool based analysis techniques. mCRL2.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'mCRL2 and Visualization of State Spaces' - varden


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide3
Behavioral models

of software

Manual analysis

techniques

Tool based analysis

techniques

UNSW / NICTA, Sydney

mcrl2
mCRL2
  • Based on mCRL: has been used in many case studies for verification of protocols and distributed systems
  • Language: process algebra (ACP) extended with data
  • Tool set: supports analysis of real-life systems and protocols

UNSW / NICTA, Sydney

slide5
mCRL2: Process algebra
  • Processes
  • Actions: a, b, c,...
  • Operators: +, ·, d, ||, |, GC, V,…

act a, b, c, error ;

procP = a·(b + c)·P + error · d ;

Q = a·Q ;

init P || Q ;

UNSW / NICTA, Sydney

mcrl2 data types
mCRL2: Data types
  • Bool,ℕ, ℤ, sets, bags, lists
  • Functions, structs
  • Lambda-expressions
  • Operators: ⋀,⋁,∀,∃,+,-,div,mod,∈,⋂,⋃,⊆,⊇,++,⊳,⊲, …

sortTree = structleaf(value:ℤ)?isLeaf | node(left:Tree,right:Tree)?isNode;

mapsquare: ℕℕ;

eqnsquare= lx:ℕ. x * x;

UNSW / NICTA, Sydney

slide7
Example

up

down

set

display

34

proc C(n:ℕ) = up · C(n+1) +

n>0down · C(n-1)+

display(n) · C(n) +

Sm:ℕ. set(m) · C(m)

UNSW / NICTA, Sydney

parallel processes
c2

c3

Parallel processes

s2

r2

s3

r3

r1

P

Q

R

s4

P || Q || R

G{s2|r2c2, s3|r3c3}(P || Q || R)

P=r1·s2·PQ=r2·s3·Q

R=r3·s4·R

{r1,c2,c3,s4}(G{s2|r2c2, s3|r3c3}(P || Q || R))

UNSW / NICTA, Sydney

parallel processes1
Parallel processes

Hide to t action

r1

P

Q

R

s4

P || Q || R

G{s2|r2c2, s2|r2c2}(P || Q || R)

P=r1·s2·PQ=r2·s3·Q

R=r3·s4·R

{r1,c2,c3,s4}(G{s2|r2c2, s3|r3c3}(P || Q || R))

t{c2,c3}({r1,c2,c3,s4}(G{s2|r2c2, s3|r3c3}(P || Q || R)))

UNSW / NICTA, Sydney

mcrl2 tool set philosophy
mCRL2

LPE

LTS

mCRL2 tool set philosophy

current state

list of

P(d:D)=SiISei:Ei

ci(d,ei)  ai(fi(d,ei)) · P(gi(d,ei))

Linear Process Equation

condition

action

effect

UNSW / NICTA, Sydney

a simple buffer
b=true

b=false

B

r

s

A simple buffer

procB =Sn:ℕr(n) · s(n) · B

b:Bool

procP(b:Bool,n:ℕ) =

Sm:ℕb  r(m) · P(true,m) +

b  s(n) · P(false,n)

UNSW / NICTA, Sydney

mcrl2 tool set
mCRL2 tool set
  • Linearizer: mCRL2 spec → LPE
  • LPE modifiers and simulators
  • LTS generator, converter and minimizer
  • GUI tool interface (under construction)
  • LTS visualizer (under construction)
  • Model-checking tools (under construction)

Freely available (Boost license) for Unix, Linux, Windows and Mac OSX

UNSW / NICTA, Sydney

large applications
Large applications

100% rule

  • Philips Consumer Electronics
  • Philips Medical
  • ASML (Wafer steppers)
  • Dutch railway company (Prorail, Holland Railconsult)
  • Océ (copiers)
  • Chess (ES)
  • Thales
  • Java distributed memory (free university)
  • Dutch Ministry of defense
  • Add-controls
  • VVSL
  • Nedcar
  • Nyquist
  • NBG
  • Firewire protocol
  • CVSS
  • Security protocol
  • Imtech

UNSW / NICTA, Sydney

visualization of state spaces
Visualization of state spaces

Consider 7 dining philosophers:

procPhil(n:ℕ) = get(n,n)·get(n,(n+1)mod 7)·eat(n)·put(n,n)·

put(n,(n+1)mod7)·Phil(n);

procFork(n:ℕ) = Sm:ℕup(m,n)·down(m,n)·Fork(n);

init ∇{lock,free,eat}(G{get|up→lock, put|down→free}(

Fork(0)|| Phil(0)|| … || Fork(6)|| Phil(6)));

State space has 4,286 states and 19,159 transitions…

UNSW / NICTA, Sydney

what s wrong
What’s wrong?
  • Too much detail: all states and transitions are shown in one picture

So:

  • Give the user a structure of the state space
  • A backbone on which the states and transitions can be visualized
  • FSMView by Frank van Ham (2000)

UNSW / NICTA, Sydney

what did we do
What did we do?
  • Rank states
  • Cluster states
  • Position and visualize the clusters

UNSW / NICTA, Sydney

slide19
0

1

2

Iterative

3

Rank states

Cluster states

Initial state

Back pointer

PhD of Frank van Ham

UNSW / NICTA, Sydney

slide20
Resulting structure

Draw knotted cones between clusters

Draw ‘leaf-clusters’ as spheres.

Rotate clusters outward.

Draw tree as 3D object

UNSW / NICTA, Sydney

functionalities
Functionalities
  • Find the deadlock…

UNSW / NICTA, Sydney

slide24
Case study: a modular lift system

start

start

stop

stop

start

start

stop

stop

Relay

UNSW / NICTA, Sydney

the lift system with 3 lifts
The lift system with 3 lifts

UNSW / NICTA, Sydney

slide26
VLTS Benchmark suite

CWI/SEN2 in Amsterdam (NL)

INRIA/VASY in Grenoble (F)

UNSW / NICTA, Sydney

visualization based on state vectors
Visualization based on state vectors
  • View N state parameters as a vector in N-dimensional space
  • StateVis and NoodleView by Hannes Pretorius

UNSW / NICTA, Sydney

statevis
StateVis

UNSW / NICTA, Sydney

scheduling wafers at asml
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml1
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml2
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml3
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml4
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml5
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml6
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml7
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml8
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml9
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml10
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml11
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml12
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml13
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml14
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml15
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml16
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml17
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml18
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml19
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml20
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml21
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml22
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml23
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml24
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

scheduling wafers at asml25
Scheduling wafers at ASML

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

slide58
Deadlock can occur …

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney

slide59
Add global constraints

Robot

Store

Robot

Robot

6

Locks

Vacuum

4

UNSW / NICTA, Sydney

slide60
Add global constraints

Robot

Store

Robot

Robot

6

Locks

Vacuum

4

UNSW / NICTA, Sydney

noodleview
NoodleView

UNSW / NICTA, Sydney

questions
Questions?

UNSW / NICTA, Sydney

contact
Contact

UNSW / NICTA, Sydney

ad