System Validation: Describing (Multi-)actions

System Validation:
Describing (Multi-)actions
Mohammad Mousavi and Jeroen Keiren
General Overview
System Models
System Requirements
Behavior (Processes)
Semantic Domain
2/1
From Processes to Their Algebra
Motivation
I
Graphical representation is monstrously big
3/1
From Processes to Their Algebra
Motivation
I
Graphical representation is monstrously big
I
Manipulating and analyzing the graphical
representation is virtually impossible
3/1
From Processes to Their Algebra
Motivation
I
Graphical representation is monstrously big
I
Manipulating and analyzing the graphical
representation is virtually impossible
Solution
Use a compact textual presentation and algebraic rules for
manipulating them
3/1
Actions
I
I
Atomic building blocks of processes
May represent:
I
I
I
I
I
internal activities
sending messages
receiving messages
the result of a synchronization
May take parameters, typically denoted by a(d) of
any Abstract Data Type
4/1
Actions
Examples
I
act rcv coin: Euro;
rcv coin(one euro)
5/1
Actions
Examples
I
act rcv coin: Euro;
rcv coin(one euro)
I
act snd number,rcv number:
snd number (1 )
Nat;
5/1
Actions
Examples
I
act rcv coin: Euro;
rcv coin(one euro)
I
act snd number,rcv number:
snd number (1 )
I
act ack number: Bool # Nat;
ack number (true, 42 )
Nat;
5/1
Actions
Examples
I
act rcv coin: Euro;
rcv coin(one euro)
I
act snd number,rcv number:
snd number (1 )
I
act ack number: Bool # Nat;
ack number (true, 42 )
Nat;
Note
Actions are not functions or procedures, in the
programming languages’ sense
5/1
Multi-Actions
I
A number of actions happening at the same time
receive(d) | send(d)
6/1
Multi-Actions
I
I
A number of actions happening at the same time
receive(d) | send(d)
Types of multi-actions:
6/1
Multi-Actions
I
I
A number of actions happening at the same time
receive(d) | send(d)
Types of multi-actions:
I
τ internal (invisible) action
6/1
Multi-Actions
I
I
A number of actions happening at the same time
receive(d) | send(d)
Types of multi-actions:
I
I
τ internal (invisible) action
a unparameterised action
6/1
Multi-Actions
I
I
A number of actions happening at the same time
receive(d) | send(d)
Types of multi-actions:
I
I
I
τ internal (invisible) action
a unparameterised action
~ action with parameters
a(d)
6/1
Multi-Actions
I
I
A number of actions happening at the same time
receive(d) | send(d)
Types of multi-actions:
I
I
I
I
τ internal (invisible) action
a unparameterised action
~ action with parameters
a(d)
α | β composite multi-action consisting of α and β
6/1
Basic Axioms for Multi-Actions
Axioms for multi-actions used in reasoning about processes
MA1
MA2
MA3
α|β = β |α
(α | β) | γ = α |(β | γ)
α|τ = α
Example
receive(d) | send(d) = send(d) | receive(d) | τ by MA1 and
MA3
7/1
Reasoning about multi-actions
Modelling of communication requires reasoning rules for
multi-actions.
8/1
Reasoning about multi-actions
Modelling of communication requires reasoning rules for
multi-actions.
Example
If send | receive communicate to comm we need rules to do
transformation
8/1
Reasoning about multi-actions
Modelling of communication requires reasoning rules for
multi-actions.
Example
If send | receive communicate to comm we need rules to do
transformation
Auxiliary operators:
I
Removal of multi-actions α \ β
8/1
Reasoning about multi-actions
Modelling of communication requires reasoning rules for
multi-actions.
Example
If send | receive communicate to comm we need rules to do
transformation
Auxiliary operators:
I
Removal of multi-actions α \ β
I
Inclusion between multi-action α v β
8/1
Reasoning about multi-actions
Modelling of communication requires reasoning rules for
multi-actions.
Example
If send | receive communicate to comm we need rules to do
transformation
Auxiliary operators:
I
Removal of multi-actions α \ β
I
Inclusion between multi-action α v β
I
Stripping data off α
8/1
Axioms for Removal of Multi-Actions α \ β
MD1
MD2
MD3
MD4
MD5
τ \α=τ
α\τ =α
α \ (β | γ) = (α \ β) \ γ
(a(d) | α) \ a(d) = α
(a(d) | α) \ b(e) = a(d) |(α \ b(e))
if a 6≡ b or d 6≈ e
Example
I
(send(d)|error |receive(d))\(send(d)|receive(d)) =
error
I
a\a=τ
9/1
Axioms for Inclusion of Multi-Actions α v β
MS1
MS2
MS3
MS4
τ v α = true
a v τ = false
a(d) | α v a(d) | β = α v β
a(d) | α v b(e) | β = a(d) |(α \ b(e)) v β
if a 6≡ b or d 6≈ e
Example
I
a(1) v a(1)|b(2) = true
I
a(1) v b(2) = false
10 / 1
Multi-Actions
Axioms for Stripping Data Off Multi-Actions α
MAN1
MAN2
MAN3
τ =τ
a(d) = a
α|β = α|β
Example
ack number (true, 42 ) | error
MAN3
= ack number (true, 42 ) | error
MAN2
= ack number | error
11 / 1
Example
Show using the axioms that (b | a(d)) \ a(d) = b
(b | a(d)) \ a(d)
12 / 1
Example
Show using the axioms that (b | a(d)) \ a(d) = b
(b | a(d)) \ a(d)
MA1
α|β = β |α
12 / 1
Example
Show using the axioms that (b | a(d)) \ a(d) = b
MA1
(b | a(d)) \ a(d) = (a(d) | b) \ a(d)
MA1
α|β = β |α
12 / 1
Example
Show using the axioms that (b | a(d)) \ a(d) = b
MA1
(b | a(d)) \ a(d) = (a(d) | b) \ a(d)
MD4
(a(d) | α) \ a(d) = α
12 / 1
Example
Show using the axioms that (b | a(d)) \ a(d) = b
MA1
(b | a(d)) \ a(d) = (a(d) | b) \ a(d)
MD4
= b
MD4
(a(d) | α) \ a(d) = α
12 / 1
General Overview
System Models
System Requirements
Behavior (Processes)
Semantic Domain
13 / 1
Thank you very much.
14 / 1