Title: BehaviourPreserving Transition Insertions in Unfolding Prefixes
1 Behaviour-Preserving Transition Insertions in
Unfolding Prefixes
- Victor Khomenko
- University of Newcastle upon Tyne
2Motivation
- Some design methods based on Petri nets
repeatedly execute the following steps - Analyze the original PN spec
- Modify the PN by behaviour-preserving transition
insertion
3Example VME Bus Controller
4Example Encoding Conflict
5State Graphs vs. Unfoldings
- State Graphs
- Relatively easy theory
- Many efficient algorithms
- Not visual
- State space explosion problem
6State Graphs vs. Unfoldings
- Unfoldings
- Alleviate the state space explosion problem
- More visual than state graphs
- Proven efficient for model checking
- Quite complicated theory
- Not sufficiently investigated
- Relatively few algorithms
7Example Encoding Conflict
e10
e8
dtack-
dsr
e1
e2
e3
e4
e5
e6
e7
e12
lds
ldtack
dtack
dsr
lds
d-
dsr-
d
Code(conf)10110
Code(conf)10110
lds-
ldtack-
e9
e11
8Example Resolving the conflict
9Example Resolving the conflict
dtack-
dsr
csc
001000
000000
100000
100001
lds
ldtack-
ldtack-
ldtack-
dtack-
dsr
011000
100101
010000
110000
ldtack
lds-
lds-
lds-
dtack-
dsr
110101
011100
110100
010100
d
d-
dtack
dsr-
csc-
011111
111111
110111
011110
10Example Resulting Circuit
Data Transceiver
Device
Bus
d
lds
dtack
dsr
csc
ldtack
11Motivation validity
- Need to check the validity of the transformation
- safeness
- bisimulation
- The validity should be checked before the
transformation is performed, i.e. on the original
prefix (to avoid backtracking)
12Motivation avoid re-unfolding
- Perform the transformation directly on the prefix
to avoid re-unfolding - Re-unfolding is time-consuming
- Good for visualization (re-unfolding can
dramatically change the look of the prefix) - Can transfer information (e.g. encoding
conflicts) between the iterations of the algorithm
13Example Re-unfolding
14Sequential pre-insertion
- Preserves safeness
- Preserves traces
- Can introduce deadlocks need to check that the
new transition never steals tokens from any
other enabled transition - simple state property
- can be checked on the original prefix
15Sequential post-insertion
- Preserves safeness
- Yields a bisimular PN
- Nothing to check!
16Concurrent insertion
- Can introduce unsafeness
- Can introduce deadlocks
17Place insertion token
t
t
p
- If the place insertion is valid and t or t is
not dead then p contains token iff there is a
t-labelled event in the prefix which does not
have t-labelled predecessor
18Place insertion validity
t
t
n
p
- Tokens(C)n tC tC
- The transformation is valid if
- for all instances e of t and t of the prefix,
Tokens(e)??0,1, and - for all cut-offs e with a corresponding
configuration C, Tokens(e)Tokens(C) - If a valid transformation is rejected by this
criterion then t and t are not live
19Pre-insertion in the prefix
- Naïve splitting can yield an incomplete prefix!
20Pre-insertion in the prefix
- Naïve splitting can yield an object which is not
a branching process!
21Pre-insertion in the prefix
- Find all possible extensions of the prefix by the
new transition - Amend the instances of the split transitions
- Amend the cut-off corresponding configurations
22Post-insertion in the prefix
- Naïve splitting can yield an incomplete prefix!
23Post-insertion in the prefix
- Definition a configuration is extendible if in
the modified prefix it can be extended by an
instance of the new transition - If there is a cut-off event e with a
corresponding configuration C such that e is
extendible and C is not extendible then terminate
unsuccessfully - Amend the instances of the split transition
- Amend the cut-off corresponding configurations
24Place insertion in the prefix
- Assumption the place insertion has passed the
validity check - If n 1 then create a new (causally minimal)
instance cmin of p - For each instance e of t' (including cut-offs),
create a new instance of p and connect it to e - For each instance e of t'' (including cut-offs)
connect e to cmin if e has no t'-labelled
predecessor and to the instance of p in the
postset of the (unique) maximal t'-labelled
predecessor of e otherwise
25Concurrent insertion in the prefix
- Perform the corresponding place insertion
- Perform the sequential pre-insertion
- This two steps can easily be combined
26Equivalent insertions
- Equivalence is easy to check
- Fewer transformations to consider
- Can convert to canonical form, e.g.
pre-insertions good for unfolding - No need to check validity post-insertions are
always valid
27Commutative insertions
- Definition two transition insertions commute if
they can be performed in any order - concurrent insertions commute with any other
insertions - pre-insertions commute with post-insertions
- two pre/post-insertions commute iff they split
different transitions or the sets of split off
places do not overlap - A valid insertion remains valid if another valid
commutative insertion is applied first, i.e. the
validity needs to be checked only once
28Summary
- Rigorous validity criteria developed
- can be checked on the original prefix no
backtracking - Algorithms for performing transformations
directly on the prefix - avoids re-unfolding, good for performance and
visualization - proofs of correctness
- Optimisation
- equivalent transformations
- commutative transformations
29- Thank you!
- Any questions?