modelling reactive system introduction
play

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,


  1. Introducing mCRL2 language for modelling reactive system

  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

  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

  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

  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

  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

  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

  8. Vending Machine act ins10, ins20, acc10, acc20, coin10, coin20, ret10, ret20 ; optA, 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, optA|putA -> readyA, optC|putC -> readyC }, User || Mach ) ) ; 8

  9. LTS Semantic • Behaviour can depend on the data that is exchanged. • The semantics of processes is defined using a structural operational 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

  10. LTS Graph 10

Recommend


More recommend