Mcrl2 and visualization of state spaces
Download
1 / 66

mCRL2 and Visualization of State Spaces - PowerPoint PPT Presentation


  • 101 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
Mcrl2 and visualization of state spaces

mCRL2 and Visualization ofState Spaces

Bas Ploeger

[email protected]

UNSW / NICTA, Sydney


Mcrl2 and visualization of state spaces1

mCRL2 and Visualization ofState Spaces

Bas Ploeger

[email protected]

UNSW / NICTA, Sydney


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


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


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


0

1

2

Iterative

3

Rank states

Cluster states

Initial state

Back pointer

PhD of Frank van Ham

UNSW / NICTA, Sydney


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




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


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


Deadlock can occur …

Robot

Store

Robot

Robot

Locks

Vacuum

UNSW / NICTA, Sydney


Add global constraints

Robot

Store

Robot

Robot

6

Locks

Vacuum

4

UNSW / NICTA, Sydney


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