modelling reactive system Introduction mCRL2 (successor of )is a - - PowerPoint PPT Presentation
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,
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
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
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
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
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
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
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
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
LTS Graph
10