The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers,...

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
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    224
  • download

    2

Transcript of The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers,...

Page 1: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 2

INTRODUCTION

17/10/2011

Page 3: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 10

Toolset overview

17/10/2011

Page 11: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 11

Success stories

17/10/2011

Page 12: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 12

MODELING

17/10/2011

Page 13: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 15

Labeled Transition Systems

• Example: Ordering items

17/10/2011

Page 16: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 17

Basic process algebra

• Relating algebra to LTSs

17/10/2011

Page 18: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 18

Basic process algebra - Ordering items

17/10/2011

Page 19: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 20

Parallelism

• Process specification

17/10/2011

Page 21: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 21

Parallelism

• Corresponding LTS

17/10/2011

Page 22: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 23

Communication

17/10/2011

• Specification:

Page 24: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 25

Processes with data

• All sorts

• Basic sorts

• Container sorts

• Functions:

• Structured sorts:

17/10/2011

Page 26: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 29

• Process specification

An odd-max-5-counter

17/10/2011

filter counter

Page 30: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 30

Tool demo:mCRL2-guimCRL22lps

lps2ltsltsgraph

An odd-max-5-counter

17/10/2011

filter counter

Page 31: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 32

VERIFICATION

17/10/2011

Page 33: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 43

CASE STUDY

17/10/2011

Page 44: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 45

HEF system – full model (6 levers)

17/10/2011

We focus on initialization

Page 46: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 46

HEF system - initialization

17/10/2011

1

4

2

3

Page 47: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 50

Simplified HEF system – Relay process

• Re-tweeting of message IDs

17/10/2011

Page 51: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 52

Simplified HEF system – Lever process

• Open relay

• Close relay

• Sent current ID

17/10/2011

Page 53: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

4S100: Frank Stappers 53

Simplified HEF system – Modeled system

• System decomposition

17/10/2011

Page 54: The mCRL2 toolset Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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 Jan Friso Groote, Jeroen Keiren, Wieger Wesselink, Sjoerd Cranen, Frank Stappers, (many others) 4S100 – Verification of discrete-event.

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