Presentation given at the International Conference on
Application and Theory of Petri Nets and Concurrency 2014, in Tunis, Tunisia. You can find the paper manuscript at http://edmundo.lopezbobeda.net/publications .
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
StrataGEM: A Generic Petri Net Verification Framework
1. StrataGEM:
A Generic Petri Net
Verification Framework
Edmundo López Bóbeda, Maximilien Colange, Didier Buchs
Wednesday, June 25th 2014 - Tunis, Tunisia
Petri nets 2014
12. Basic strategy semantics
• Basic strategy (A list of rewrite rules)
• Application to root term only
• The first applicable rule is applied
• Otherwise, fail
13. Other useful strategies
• Identity[t] = t
• Fail[t], always fails
• (S1 orElse S2)[t] = S1[t] or S2[t], if S1[t] fails
• Conditional application of strategies
• (S1 andThen S2)[t] = S2[S1[t]]
• Sequential composition of strategies
• Subtermk(S)[f(t1, …, tn)] = f(t1, …, S(tk), …, tn)
• Apply strategy to subterm
14. Representing transitions
R(suc(0), Y(0, G(0, empty)))
iArc = R(suc(x), p) ↝ R(x, p)
oArc = G(x, p) ↝ G(suc(x), p)
t1 = Once(iArc) andThen Once(oArc)
Once(S) = S orElse Subterm2(Once(S)
R
Y
G
t3
t1
t2
16. t1 = Once(iArc) andThen Once(oArc)
t2 = … ; t3 = …
CalcSS = ???
"
"
Description of the
computation
R
Y
G
t3
t1
t2
17. Strategies extended
• Natural extension
• S[{t1, …, tn}] = {S[t1], …, S[tn]}
• Set strategies
• Union(S1, S2)[T] = S1[T] U S2[T], if both
succeed
• Fixpoint(S)[T] = μT.S[T]
18. t1 = Once(iArc) andThen Once(oArc)
t2 = … ; t3 = …
CalcSS = Fixpoint(
Union(
Try(t1), Try(t2), Try(t3), Identity))
Try(S) = S orElse Identity
Description of the
computation
R
Y
G
t3
t1
t2
25. Saturation: for connaisseurs
• Well known DD optimization
technique
• Apply local fixpoint in order to reduce
peak effect
R
Y
G
t3
t1
t2
Satn(S) =
(Subtermn(Satn(S)) orElse FixPoint(S))
andThen
Fixpoint(S)
28. Practical results
• Stratagem has been used to implement:
• Optimizations: Saturation, Clustering,
Anonymization, etc.
• Other formalisms: Divine formalism
29. Practical results
• Comparison with PNXDD
• Symbolic model checking
• Similar techniques (topological, decision
diagrams)
• Common model database (model checking
contest)
• 2nd best tool for state space calculation last year
31. Implementation
• 3700 lines of Scala
• Available for download http://sourceforge.net/
projects/stratagem-mc/
• Source code available on Github
• Platform independent
32. Future work
• Implement CTL verification
• Implement other translations (Algebraic Petri nets)
• Implement other optimization techniques