the mcrl2 toolset

56
The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event systems Eindhoven, The Netherlands October 17, 2011

Upload: terah

Post on 24-Feb-2016

70 views

Category:

Documents


0 download

DESCRIPTION

The mCRL2 toolset. Jan Friso Groote, Jeroen Keiren , Wieger Wesselink , Sjoerd Cranen , Frank Stappers , (many others) 4S100 – Verification of discrete- event systems Eindhoven, The Netherlands October 17, 2011. Introduction. Analysis techniques. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The  mCRL2 toolset

The mCRL2 toolset

Jan Friso Groote, Jeroen Keiren, Wieger Wesselink,Sjoerd Cranen, Frank Stappers, (many others)

4S100 – Verification of discrete-event systemsEindhoven, The NetherlandsOctober 17, 2011

Page 2: The  mCRL2 toolset

4S100: Frank Stappers 2

INTRODUCTION

17/10/2011

Page 3: The  mCRL2 toolset

4S100: Frank Stappers 3

Analysis techniques

• Analysis techniques used in hardware/software development: • Structural analysis: what things are in the system− Class diagrams (software) − CAD-models (hardware)− PCB design (electronic circuits)

• Behavioral analysis: what happens in the system − Matlab simulink models− Message sequence charts − Petri nets − Process algebra − Temporal logic...

17/10/2011

Page 4: The  mCRL2 toolset

4S100: Frank Stappers 4

Behavioral analysis

• What is behavioral analysis about? • Modeling:− Create an abstract model of the behavior

• Validation and Verification:• Validation: does the model roughly behave as expected? − Simulation, testing

• Verification: does the model satisfy the requirements in all states?− Modelchecking, SAT solving, theorem proving

17/10/2011

Page 5: The  mCRL2 toolset

4S100: Frank Stappers 5

Behavioral analysis

Why modeling? To reduce complexity:• Direct verification of software/hardware system is

impossible due to the huge number of states.• Much more complex than e.g. Rubik’s cube:

43,252,003,274,489,856,000 (4.3 * 10 19) states

17/10/2011

Page 6: The  mCRL2 toolset

4S100: Frank Stappers 6

Behavioral analysis

From our experience: • Without proper modeling it is impossible to get a system

right.• Implementing a model does not introduce substantial flaws.• Modeling an implementation nearly always reveals flaws or

ambiguities.

17/10/2011

100%(and this is even true for our language)

Page 7: The  mCRL2 toolset

4S100: Frank Stappers 7

Toolsets for behavioral analysis

For verification of industrial systems, tool support is essential. Toolsets for modeling, validation and verification of behavior: • CADP (INRIA Rhone Alpes, France) • SPIN (Bell Labs, USA) • FDR (Formal Systems Limited, Oxford, UK) • Uppaal (Uppsala University, Sweden) • NuSMV (Carnegie Mellon University, USA) • mCRL2 (MDSE group / LaQuSo, TU/e)• ...

17/10/2011

Page 8: The  mCRL2 toolset

4S100: Frank Stappers 8

mCRL2 toolset overview - History

17/10/2011

1990 2000 2010

now

Common Representation Language (CRL)

micro Common Representation Language (μCRL)

micro Common Representation Language 2 (mCRL2)

2004

Page 9: The  mCRL2 toolset

4S100: Frank Stappers 9

mCRL2 toolset overview – General Information

• The mCRL2 toolset can be used for the specification, validation and verification of concurrent systems and protocols.

• Collection of tools • Available for the following platforms:

• Microsoft Windows • Linux (Ubuntu/openSUSE/Fedora)• Mac OS X

• Distributed under the Boost license • Available at http://mcrl2.org

17/10/2011

Page 10: The  mCRL2 toolset

4S100: Frank Stappers 10

Toolset overview

17/10/2011

Page 11: The  mCRL2 toolset

4S100: Frank Stappers 11

Success stories

17/10/2011

Page 12: The  mCRL2 toolset

4S100: Frank Stappers 12

MODELING

17/10/2011

Page 13: The  mCRL2 toolset

4S100: Frank Stappers 13

Actions

• The behavior of a process is that which we can observe. • Observable behavior and observing behavior can be

expressed in terms of actions.

• Example:• A lamp has to shine in order for us to see that it is on. • We have to look at a lamp to see that it is shining.

17/10/2011

Page 14: The  mCRL2 toolset

4S100: Frank Stappers 14

Labeled Transition Systems

• A labeled transition system is a basic formalism for describing behavior.

• Also known as labeled directed graphs or state spaces. • Labels represent discrete events, also called actions.

17/10/2011

Formal definition:A labeled transition system is a tuple (S, L, →, s, T ) where: S is a set of statesL is a set of labels → ⊆ S × L × S is a transition relation s S∈ is the initial state T S⊆ is the set of terminating states

Page 15: The  mCRL2 toolset

4S100: Frank Stappers 15

Labeled Transition Systems

• Example: Ordering items

17/10/2011

Page 16: The  mCRL2 toolset

4S100: Frank Stappers 16

Basic process algebra

A process with name ∈ is defined as

P can be of the following form:• An action (a Act) ∈• Sequential composition • Alternative composition• Recursion (Y ∈ ) • The deadlock process• Internal/hidden action

17/10/2011

Page 17: The  mCRL2 toolset

4S100: Frank Stappers 17

Basic process algebra

• Relating algebra to LTSs

17/10/2011

Page 18: The  mCRL2 toolset

4S100: Frank Stappers 18

Basic process algebra - Ordering items

17/10/2011

Page 19: The  mCRL2 toolset

4S100: Frank Stappers 19

Parallel composition

• can be of the following form: • Parallel composition • Communication merge

• This gives rise to multi-actions (Act*):• multi-action

17/10/2011

a || b a | b

Page 20: The  mCRL2 toolset

4S100: Frank Stappers 20

Parallelism

• Process specification

17/10/2011

Page 21: The  mCRL2 toolset

4S100: Frank Stappers 21

Parallelism

• Corresponding LTS

17/10/2011

Page 22: The  mCRL2 toolset

4S100: Frank Stappers 22

Communication

Three operators for communication:• Communication (Act∗ × Act)• Encapsulation [block] (Act) • Allow (Act∗)Explanation:•

• renames multi-action a|b to c•

• blocks all actions in the set B•

• blocks multi-actions different from the ones in A

17/10/2011

Page 23: The  mCRL2 toolset

4S100: Frank Stappers 23

Communication

17/10/2011

• Specification:

Page 24: The  mCRL2 toolset

4S100: Frank Stappers 24

Processes with data

• Why data?• In real-life systems data is essential • Data allows for finite specifications of infinite systems

• Examples:• Represent non-functional properties, e.g. color of a traffic light.• Capture information streams, e.g. communication of

information• Manipulation, e.g. mathematical functions. • ...

17/10/2011

Page 25: The  mCRL2 toolset

4S100: Frank Stappers 25

Processes with data

• All sorts

• Basic sorts

• Container sorts

• Functions:

• Structured sorts:

17/10/2011

Page 26: The  mCRL2 toolset

4S100: Frank Stappers 26

Processes with data

• Data specification• Sort declarations• Constructors (for creating user defined data types)• Mappings

• Example – compute the sum over a list of values:

17/10/2011

Page 27: The  mCRL2 toolset

4S100: Frank Stappers 27

Processes with Data

• BNF:

• Examples• Data parameterized action:• Data parameterized process:• Conditions:• Summation:

17/10/2011

Page 28: The  mCRL2 toolset

4S100: Frank Stappers 28

Processes with Data

• Summation:• Short hand notation for choice• over a domain of values:

a(0)+a(1)+...+a(N-1)+a(N)

17/10/2011

Page 29: The  mCRL2 toolset

4S100: Frank Stappers 29

• Process specification

An odd-max-5-counter

17/10/2011

filter counter

Page 30: The  mCRL2 toolset

4S100: Frank Stappers 30

Tool demo:mCRL2-guimCRL22lps

lps2ltsltsgraph

An odd-max-5-counter

17/10/2011

filter counter

Page 31: The  mCRL2 toolset

4S100: Frank Stappers 31

Verification

• How to ensure that…• no deadlock?• counter does not exceed value X?• an input (r1) is always followed by an output (s3)?

17/10/2011

filter counter

Page 32: The  mCRL2 toolset

4S100: Frank Stappers 32

VERIFICATION

17/10/2011

Page 33: The  mCRL2 toolset

4S100: Frank Stappers 33

Verification

Model checking is an automated verification method. It can be used to check functional requirements against a model.• A (software or hardware) system is modeled in mCRL2 • The requirements are specified as properties in a temporal

logic• A model checking algorithm decides whether the property

holds for the model.

17/10/2011

Temporal logic used within mCRL2:μ-calculus with data, time and regular expressions

Page 34: The  mCRL2 toolset

4S100: Frank Stappers 34

Temporal logic

• Idea of μ-calculus: add fixed point operators (i.e. recursion) as primitives to standard Hennessy-Milner logic• μ-calculus is very expressive (subsumes e.g. CTL )∗• μ-calculus is very pure• drawback: lack of intuition

17/10/2011

μ-calculus LTL CTL

CTL*

UPPAAL

mCRL2

Page 35: The  mCRL2 toolset

4S100: Frank Stappers 35

A flavor of μ-calculus

• Hennessy-Milner logic: proposition logic with modalities:

• Notation: : state of a transition system satisfies formula

17/10/2011

For all states s: s trueFor no state s: s false

Page 36: The  mCRL2 toolset

4S100: Frank Stappers 36

A flavor of μ-calculus

• Hennessy-Milner logic: proposition logic with modalities:

• Notation: : state of a transition system satisfies formula

17/10/2011

s [a]phi holds in a state s if every a-labeled transition leading out of s leads to a state where phi holds

Page 37: The  mCRL2 toolset

4S100: Frank Stappers 37

A flavor of μ-calculus

• Hennessy-Milner logic: proposition logic with modalities:

• Notation: : state of a transition system satisfies formula

17/10/2011

s <a>phi holds in a state s if any a-labeled transition leading out of s leads to a state where phi holds

Page 38: The  mCRL2 toolset

4S100: Frank Stappers 38

A flavor of μ-calculus

Example:Determine the largest set of states S that satisfy:

17/10/2011

S [b]falseS [a][b]trueS <a>true

Page 39: The  mCRL2 toolset

4S100: Frank Stappers 39

A flavor of μ-calculus

mCRL2 extends HM logic with regular expressions:

Explanation:• R.R concatenation• R+R choice• R* match R zero times or more• R+ match R once or more

17/10/2011

Page 40: The  mCRL2 toolset

4S100: Frank Stappers 40

A flavor of μ-calculus

Example:Determine the largest set of states S that satisfy:

17/10/2011

S [b+a]falseS [a.b.c]falseS <a.a.b+a.a.a>trueS <a*>trueS <a+>trueS [a*.b]false

Page 41: The  mCRL2 toolset

4S100: Frank Stappers 41

An odd-max-5-counter verification

• How to ensure that…• no deadlock?

[true*]<true>true• counter does not exceed value X?

[true*.s3(X)]false• an input (r1) is always followed by an output (s3)?

[true*.r1’.(!s3’)*]<(!s3’)*.s3’>true

17/10/2011

filter counter

r1’,s3’ actions with eliminated data parameters

action wildcard

Page 42: The  mCRL2 toolset

4S100: Frank Stappers 42

Tool demo:mCRL2-guilps2pbes

pbes2bool(lpsactionrename)

An odd-max-5-counter verification

17/10/2011

filter counter

Page 43: The  mCRL2 toolset

4S100: Frank Stappers 43

CASE STUDY

17/10/2011

Page 44: The  mCRL2 toolset

4S100: Frank Stappers 44

HEF system

17/10/2011

• Modular HEF system• Levers (≥ 2) are connect to• Relays connect levers• Messages are sent over CAN-bus• Relays control `length’ of the bus

• Occasionally nonresponsive levers• What is wrong?• Something in the design?

• Time for model-checking!

Page 45: The  mCRL2 toolset

4S100: Frank Stappers 45

HEF system – full model (6 levers)

17/10/2011

We focus on initialization

Page 46: The  mCRL2 toolset

4S100: Frank Stappers 46

HEF system - initialization

17/10/2011

1

4

2

3

Page 47: The  mCRL2 toolset

4S100: Frank Stappers 47

Simplified HEF system

• Assumptions:• Good weather-behavior• Initialization only!• No up- and down movement• Modular design

• Simplified model:• User (#1)• Relays (#3)• Levers (#3)

• Every process has a physical position (used for identification)

17/10/2011

Page 48: The  mCRL2 toolset

4S100: Frank Stappers 48

Simplified HEF system – User process

User process• User is attached to lever pos• Press “start”

• Send send_start message to attached lever• Notification: “Found n levers”

• recv_found message contains the n found levers

17/10/2011

Page 49: The  mCRL2 toolset

4S100: Frank Stappers 49

Simplified HEF system – Relay process

Relay process:• Relay can be Open or Closed

• Relay has a position between two levers and an open status:

• Opening/closing relay:

17/10/2011

Page 50: The  mCRL2 toolset

4S100: Frank Stappers 50

Simplified HEF system – Relay process

• Re-tweeting of message IDs

17/10/2011

Page 51: The  mCRL2 toolset

4S100: Frank Stappers 51

Simplified HEF system – Lever process

• Lever process• Lever has a position pos and an ID (0 if uninitialized)

• Update ID if uninitialized

• If we get an ID and our ID is initialized we report to user

17/10/2011

Page 52: The  mCRL2 toolset

4S100: Frank Stappers 52

Simplified HEF system – Lever process

• Open relay

• Close relay

• Sent current ID

17/10/2011

Page 53: The  mCRL2 toolset

4S100: Frank Stappers 53

Simplified HEF system – Modeled system

• System decomposition

17/10/2011

Page 54: The  mCRL2 toolset

4S100: Frank Stappers 54

Simplified HEF system – Analysis

Some properties checked:• No Deadlock:

[true*]<true>true• We know that we modeled 3 levers, so 3 levers detected?

<true*.found(3)>true• Finding only 2 levers would be stupid:

[true*.found(2)]false

17/10/2011

?

Page 55: The  mCRL2 toolset

4S100: Frank Stappers 55

Simplified HEF system – The bug…

• So what’s happing?start(0)ID_to_relay(0, 1)ID_from_relay(1, 1)ID_to_relay(1, 2)ID_from_relay(0, 2)found(2)

• Problem: Process ID==1 gets ID from process ID==2 before the relay is closed!

• Similar problem in the actual system: old relays did not close in time

17/10/2011

Solved the day (again)

Page 56: The  mCRL2 toolset

4S100: Frank Stappers 56

Summary

• The mCRL2 toolset:• facilitates many kinds of system behavior analysis• can be used to:− detect errors in the design − prevent errors already in the design

• Small introduction, mCRL2 has many more features:• Functional programming in data specifications• Optimization with linear process specifications• State space reduction techniques• Checking for behavioral equivalence • Parameterized Boolean Equations Systems to solve properties• Solving Parity Games• Export to other (analysis) toolsets/formats• ….

17/10/2011