modelling reactive system Introduction mCRL2 (successor of )is a - - PowerPoint PPT Presentation

modelling reactive system introduction
SMART_READER_LITE
LIVE PREVIEW

modelling reactive system Introduction mCRL2 (successor of )is a - - PowerPoint PPT Presentation

Introducing mCRL2 language for modelling reactive system Introduction mCRL2 (successor of )is a specification language for describing concurrent discrete event systems. It is accompanied with a toolset for simulation,


slide-1
SLIDE 1

Introducing mCRL2 language for modelling reactive system

slide-2
SLIDE 2

Introduction

  • mCRL2 (successor of 𝜈𝐷𝑆𝑀)is a specification language

for describing concurrent discrete event systems.

  • It is accompanied with a toolset for simulation, analysis

and visualization of behavior.

  • The behavioral part of the language is based on

process algebra (Algebra of Communicating Processes) which is extended to include data and time.

  • The data part of the toolset is based on abstract

equational data types.

  • The toolset has been founded by Jan Friso Groote and

is currently developed at Eindhoven University of Technology.

2

slide-3
SLIDE 3

Philosophy

  • Like in every process algebra, a fundamental concept in

mCRL2 is the process.

  • Processes can perform actions and can be composed to

form new processes using algebraic operators.

  • A system usually consists of several processes (or

components) in parallel.

  • A process can carry data as its parameters. The state of a

process is a specific combination of parameter values.

  • Every process has a corresponding state space or Labelled

Transition System (LTS) which contains all states that the process can reach, along with the possible transitions between those states.

3

slide-4
SLIDE 4

Specification

  • An mCRL2 specification is a plain-text file

containing a model in the mCRL2 language.

  • The first step in the mCRL2 analysis process is to

linearise this specification to obtain a Linear Process Specification (LPS).

  • This is an mCRL2 specification from which all

parallelism has been removed.

  • All that remains is a series of condition – action –

effect rules that specify how the system as a whole reacts to certain stimuli given its current state.

4

slide-5
SLIDE 5

Syntax

  • The mCRL2 specification format requires only that an

init statement be present.

  • It might be the case that a specification file contains

definitions for multiple processes; the init statement specifies which of these definitions (if any) is used. act a, b; proc P = a . P + b; init P;

  • This specification defines the process that can do any

number of a actions, followed by a single b. After this, it terminates.

5

slide-6
SLIDE 6

Algebra

  • Actions in mCRL2 can be synchronized using the

Synchronization operator a | b

  • Deadlock or inaction 𝜀
  • Alternative composition p + q
  • Sequential composition p . q
  • Conditional operator or if-then-else construct 𝑑 → 𝑞 ◊ 𝑟

where c is a boolean expression

  • Parallel composition p || q yielding interleavings of the

actions in p and q

  • communication operator 𝑏0| … |𝑏𝑜 ⟼ 𝑑 , which means

that every group of actions 𝑏0| … |𝑏𝑜 within a multi-action is replaced by c.

6

slide-7
SLIDE 7

Data & Time

  • Summation

𝑞

𝑒:𝐸 used to quantify over a data

domain D

  • At operator a@t indicating that multi-action a

happens at time t

  • The mCRL2 language provides a number of built-

in datatypes (e.g., boolean, natural, integer) with predefined standard arithmetic operations

  • And a datatype definition mechanism to declare

custom types (called also sorts).

7

slide-8
SLIDE 8

Vending Machine

act ins10, ins20, acc10, acc20, coin10, coin20, ret10, ret20 ;

  • ptA, optC, chg10, chg20, putA, putC, prod,

readyA, readyC, out10, out20 ; proc User = ins10.( optA + ins10.( optC + chg20 ) + chg10 ).User + ins20.( optA.chg10 + optC + chg20 ).User ; Mach = acc10.( putA.prod + acc10.( putC.prod + ret20 ) + ret10 ).Mach + acc20.( putA.prod.ret10 + putC.prod + ret20 ).Mach ; init allow( { coin10, coin20, readyA, readyC, out10, out20, prod }, comm( { ins10|acc10 -> coin10, ins20|acc20 -> coin20, chg10|ret10 -> out10, chg20|ret20 -> out20,

  • ptA|putA -> readyA, optC|putC -> readyC },

User || Mach ) ) ;

8

slide-9
SLIDE 9

LTS Semantic

  • Behaviour can depend on the data that is exchanged.
  • The semantics of processes is defined using a structural
  • perational semantics, which associates with every

expression in the language a labelled transition system (LTS).

  • Each edge is labelled with an action, which in turn can

have data parameters.

  • The information contained in vertices is represented by

a process expression and a valuation of its data parameters, but is unobservable.

9

slide-10
SLIDE 10

LTS Graph

10