SlideShare ist ein Scribd-Unternehmen logo
1 von 127
Downloaden Sie, um offline zu lesen
Towards a General 
Approach for Symbolic 
Model-Checker Prototyping 
Edmundo LĂłpez BĂłbeda, Maximilien Colange, Didier Buchs 
Wednesday, September 24th 2014 - Enschede, Netherlands 
1
Your awesome DSL 
2
Your awesome DSL 
Abstract semantics 
2
Your awesome DSL 
Abstract semantics 
Symbolic 
Model checker 
2
Your awesome DSL 
Abstract semantics 
3
Your awesome DSL 
Abstract semantics 
Existing Symbolic 
Model checker 
3
Your awesome DSL 
Abstract semantics 
Translation 
Existing Symbolic 
Model checker 
3
Your awesome DSL 
Abstract semantics 
Translation 
Existing Symbolic 
Model checker 
4
Your awesome DSL 
Translation 
Existing Symbolic 
Model checker 
4
Your awesome DSL 
Translation 
Existing Symbolic 
Model checker 
4
Your awesome DSL 
Existing Symbolic 
Model checker 
4 
}Too much 
work! 
Translation
Your awesome DSL 
Existing Symbolic 
Model checker 
4 
}Too much 
work! 
Translation 
high level data structures
Your awesome DSL 
Existing Symbolic 
Model checker 
4 
}Too much 
work! 
Translation 
high level data structures 
custom operations
Your awesome DSL 
Existing Symbolic 
Model checker 
4 
}Too much 
work! 
Translation 
high level data structures 
custom operations 
rich data types
Your awesome DSL 
Existing Symbolic 
Model checker 
4 
}Too much 
work! 
Translation 
high level data structures 
custom operations 
rich data types 
low level
Your awesome DSL 
Existing Symbolic 
Model checker 
4 
}Too much 
work! 
Translation 
high level data structures 
custom operations 
rich data types 
low level 
fixed primitives operations
Your awesome DSL 
Abstract semantics 
Translation 
Set rewriting 
Translation 
Decision diagrams 
5
Your awesome DSL 
Abstract semantics 
approach 
{Our Translation Translation 
Set rewriting 
Decision diagrams 
5
Your awesome DSL 
Abstract semantics 
approach 
{Our Translation Translation 
Set rewriting 
Decision diagrams 
5 
}Our contribution
Abstract semantics 
In context 
6 
Your awesome DSL 
Abstract semantics 
Translation 
Set rewriting 
Translation 
Decision diagrams
Abstract semantics 
In context 
• High level representation 
6 
Your awesome DSL 
Abstract semantics 
Translation 
Set rewriting 
Translation 
Decision diagrams
Abstract semantics 
In context 
• High level representation 
• Suitable for humans 
6 
Your awesome DSL 
Abstract semantics 
Translation 
Set rewriting 
Translation 
Decision diagrams
Abstract semantics 
Variable assignation 
7 
s 
hB := c, si ! s[B = k/B = c]
Abstract semantics 
Variable assignation 
• Let s be a state of a system 
7 
s 
hB := c, si ! s[B = k/B = c]
Abstract semantics 
Variable assignation 
• Let s be a state of a system 
• s = {A = k1, B = k2, …} 
7 
s 
hB := c, si ! s[B = k/B = c]
Abstract semantics 
Variable assignation 
• Let s be a state of a system 
• s = {A = k1, B = k2, …} 
• k, k1, k2, c ∈ 퓝 
7 
s 
hB := c, si ! s[B = k/B = c]
Abstract semantics 
Variable assignation 
• Let s be a state of a system 
• s = {A = k1, B = k2, …} 
• k, k1, k2, c ∈ 퓝 
• A, B, etc variable names 
7 
s 
hB := c, si ! s[B = k/B = c]
Set rewriting 
In context 
8 
Your awesome DSL 
Abstract semantics 
Translation 
Set rewriting 
Translation 
Decision diagrams
Set rewriting 
In context 
• Rewriting and strategies 
8 
Your awesome DSL 
Abstract semantics 
Translation 
Set rewriting 
Translation 
Decision diagrams
Set rewriting 
In context 
• Rewriting and strategies 
• Good semantic framework 
[MartĂ­-Oliet & Meseguer 1993] 
8 
Your awesome DSL 
Abstract semantics 
Translation 
Set rewriting 
Translation 
Decision diagrams
Set rewriting 
In context 
• Rewriting and strategies 
• Good semantic framework 
[MartĂ­-Oliet & Meseguer 1993] 
• Operational semantics 
8 
Your awesome DSL 
Abstract semantics 
Translation 
Set rewriting 
Translation 
Decision diagrams
Set rewriting 
A state 
• Variables 
• var(A, 0, var(B, 2, var(C, 3, empty))) 
9
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
10
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
• var(A, 0, var(B, 2, var(C, 3, empty))) 
10
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
• var(A, 0, var(B, 2, var(C, 3, empty))) 
• var(B, $x, $s) ⤳ var(B, c, $s), k ∈ 퓝 
10
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
• var(A, 0, var(B, 2, var(C, 3, empty))) 
• var(B, $x, $s) ⤳ var(B, c, $s), k ∈ 퓝 
• Problem: 
10
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
• var(A, 0, var(B, 2, var(C, 3, empty))) 
• var(B, $x, $s) ⤳ var(B, c, $s), k ∈ 퓝 
• Problem: 
• Non determinism ⇒ performance hit, ambiguity 
10
Rewriting strategies 
Goal 
• Introduced in ELAN [Borovanský et al.1996] 
11
Rewriting strategies 
Goal 
• Introduced in ELAN [Borovanský et al.1996] 
• Control rewriting 
11
Rewriting strategies 
Goal 
• Introduced in ELAN [Borovanský et al.1996] 
• Control rewriting 
• Avoid ambiguity 
11
Rewriting strategies 
Goal 
• Introduced in ELAN [Borovanský et al.1996] 
• Control rewriting 
• Avoid ambiguity 
• Improve speed 
11
Rewriting strategies 
What are they 
Rewrite 
rules 
12
Rewriting strategies 
What are they 
Strategies 
Rewrite 
rules 
12
Rewriting strategies 
Basic strategy 
• Basic strategy (A list of rewrite rules) 
13
Rewriting strategies 
Basic strategy 
• Basic strategy (A list of rewrite rules) 
• Application to root term only 
13
Rewriting strategies 
Basic strategy 
• Basic strategy (A list of rewrite rules) 
• Application to root term only 
• The first applicable rule is applied 
13
Rewriting strategies 
Basic strategy 
• Basic strategy (A list of rewrite rules) 
• Application to root term only 
• The first applicable rule is applied 
• Otherwise, fail 
13
Rewriting strategies 
Other useful strategies 
14
Rewriting strategies 
Other useful strategies 
• Identity[t] = t 
14
Rewriting strategies 
Other useful strategies 
• Identity[t] = t 
• Fail[t], always fails 
14
Rewriting strategies 
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 
14
Rewriting strategies 
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 
14
Rewriting strategies 
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
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
15
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
• var(A, 0, var(B, 2, var(C, 3, empty))) 
15
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
• var(A, 0, var(B, 2, var(C, 3, empty))) 
• assignK = { var(B, $x, $s) ⤳ var(B, c, $s) } 
15
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
• var(A, 0, var(B, 2, var(C, 3, empty))) 
• assignK = { var(B, $x, $s) ⤳ var(B, c, $s) } 
• applyToB(S) = S orElse (Subterm3(applyToB(S))) 
15
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
• var(A, 0, var(B, 2, var(C, 3, empty))) 
• assignK = { var(B, $x, $s) ⤳ var(B, c, $s) } 
• applyToB(S) = S orElse (Subterm3(applyToB(S))) 
• transition = applyToB(assignK) 
15
Set rewriting 
Operational semantics / Variable Assignation 
s 
hB := c, si ! s[B = k/B = c] 
assignK = { var(B, $x, $s) ⤳ var(B, c, $s) } 
applyToB(S) = S orElse (Subterm3(applyToB(S))) 
transition = applyToB(assignK) 
16
Set rewriting 
Set extension 
• In practice 
• Strategies and rewrite rules applied to sets of 
terms 
• Allow also to describe model checking 
computation 
17
Set rewriting 
Set extension 
18
Set rewriting 
Set extension 
• Natural extension 
• S[{t1, …, tn}] = {S[t1], …, S[tn]} 
18
Set rewriting 
Set extension 
• Natural extension 
• S[{t1, …, tn}] = {S[t1], …, S[tn]} 
• Set strategies, T = {t1, …, tn} 
• Union(S1, S2)[T] = S1[T] U S2[T], if both 
succeed 
• Fixpoint(S)[T] = μT.S[T] 
18
Set rewriting 
Computing state space 
19
Set rewriting 
Computing state space 
19 
s 
hB := c, si ! s[B = k/B = c] 
transition1 = …
Set rewriting 
Computing state space 
19 
s 
hB := c, si ! s[B = k/B = c] 
transition1 = … 
semantic formula 2 transition2 = …
Set rewriting 
Computing state space 
19 
s 
hB := c, si ! s[B = k/B = c] 
transition1 = … 
semantic formula 2 transition2 = … 
…
Set rewriting 
Computing state space 
19 
s 
hB := c, si ! s[B = k/B = c] 
transition1 = … 
semantic formula 2 transition2 = … 
… 
semantic formula n transitionn = …
Set rewriting 
Computing state space 
19 
s 
hB := c, si ! s[B = k/B = c] 
transition1 = … 
semantic formula 2 transition2 = … 
… 
semantic formula n transitionn = … 
calculateSS = Fixpoint(Union(transition1, transition2, …, transitionn))
Set rewriting 
Saturation: For connaisseurs 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Set rewriting 
Saturation: For connaisseurs 
• Well known DD optimization technique 
• Apply local fixpoint in order to reduce peak effect 
• Satn(S) = 
(Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 
var(A, 1, var(B, 2, var(C, 0, empty ))) 
20
Decision Diagrams 
In context 
• Fast 
• Large state spaces 
• Suitable for model checking 
21 
Your awesome DSL 
Abstract semantics 
Translation 
Set rewriting 
Translation 
Decision diagrams
The idea is that you never have 
to think in terms of DD again… 
so we won’t talk about them :-) 
22
Implementation 
• We have a tool that implements the approach 
23
Implementation 
• We have a tool that implements the approach 
• Stratagem http://sourceforge.net/projects/stratagem-mc/ 
(written in Java and Scala) 
23
Implementation 
• We have a tool that implements the approach 
• Stratagem http://sourceforge.net/projects/stratagem-mc/ 
(written in Java and Scala) 
• ~3700 lines of Scala code (DD and Strategies engine) 
23
Implementation 
• We have a tool that implements the approach 
• Stratagem http://sourceforge.net/projects/stratagem-mc/ 
(written in Java and Scala) 
• ~3700 lines of Scala code (DD and Strategies engine) 
• Java code generated from model (Eclipse EMF, XText) 
23
Implementation 
• We have a tool that implements the approach 
• Stratagem http://sourceforge.net/projects/stratagem-mc/ 
(written in Java and Scala) 
• ~3700 lines of Scala code (DD and Strategies engine) 
• Java code generated from model (Eclipse EMF, XText) 
• Implemented translation for Petri nets 
23
Implementation 
• We have a tool that implements the approach 
• Stratagem http://sourceforge.net/projects/stratagem-mc/ 
(written in Java and Scala) 
• ~3700 lines of Scala code (DD and Strategies engine) 
• Java code generated from model (Eclipse EMF, XText) 
• Implemented translation for Petri nets 
• Implemented translation for SPIN-like formalism 
23
Practical results 
Presentation 
24
Practical results 
Presentation 
• Petri nets taken from the Model checking contest @ 
PETRI NETS 2014 [Kordon et al. 2014] 
24
Practical results 
Presentation 
• Petri nets taken from the Model checking contest @ 
PETRI NETS 2014 [Kordon et al. 2014] 
• Marcie [Heiner et al. 2013] was the best model 
checker for the state space category 
24
Practical results 
Presentation 
• Petri nets taken from the Model checking contest @ 
PETRI NETS 2014 [Kordon et al. 2014] 
• Marcie [Heiner et al. 2013] was the best model 
checker for the state space category 
• Since then we only improved the translation 
24
Practical results 
Kanban problem 
25
Practical results 
Kanban problem 
• Small Petri net 
25
Practical results 
Kanban problem 
• Small Petri net 
• 16 places & 16 transitions, marking changes with 
scale parameter 
25
Practical results 
Kanban problem 
• Small Petri net 
• 16 places & 16 transitions, marking changes with 
scale parameter 
• State space for scale parameter 100 
25
Practical results 
Kanban problem 
• Small Petri net 
• 16 places & 16 transitions, marking changes with 
scale parameter 
• State space for scale parameter 100 
• 1.7263 ·1019 states 
25
Practical results 
Kanban problem 
Marcie Stratagem 
10 20 50 100 
26 
100 
Time in seconds 0.1 
10 
1 
Model size (scale parameter)
Practical results 
Kanban problem 
Marcie Stratagem 
10 20 50 100 
26 
100 
Time in seconds 0.1 
10 
1 
Model size (scale parameter)
Practical results 
Kanban problem 
Marcie Stratagem 
10 20 50 100 
26 
100 
Time in seconds 0.1 
10 
1 
Model size (scale parameter)
Practical results 
Sharedmem problem 
27
Practical results 
Sharedmem problem 
• Petri net’s places and transition increase with scale 
parameter 
27
Practical results 
Sharedmem problem 
• Petri net’s places and transition increase with scale 
parameter 
• 2651 places & 5050 transitions for scale parameter 
50 
27
Practical results 
Sharedmem problem 
• Petri net’s places and transition increase with scale 
parameter 
• 2651 places & 5050 transitions for scale parameter 
50 
• State space for scale parameter 50 
27
Practical results 
Sharedmem problem 
• Petri net’s places and transition increase with scale 
parameter 
• 2651 places & 5050 transitions for scale parameter 
50 
• State space for scale parameter 50 
• 5.87 ·1026 states 
27
Practical results 
SharedMem problem 
Marcie Stratagem 
5 10 20 50 
28 
Time in seconds 
1000 
100 
10 
1 
0.1 
Model size (scale parameter)
Practical results 
SharedMem problem 
Marcie Stratagem 
5 10 20 50 
28 
Time in seconds 
1000 
100 
10 
1 
0.1 
Model size (scale parameter)
Practical results 
SharedMem problem 
Marcie Stratagem 
5 10 20 50 
28 
Time in seconds 
1000 
100 
10 
1 
0.1 
Model size (scale parameter)
Limitations 
29
Limitations 
• Non-linear rules are not allowed (but can be 
simulated) 
29
Limitations 
• Non-linear rules are not allowed (but can be 
simulated) 
• Verification not yet implemented 
29
Conclusions 
30
Conclusions 
• New approach 
30
Conclusions 
• New approach 
• Better results just by changing the strategy 
30
Conclusions 
• New approach 
• Better results just by changing the strategy 
• More general and unified 
30
Conclusions 
• New approach 
• Better results just by changing the strategy 
• More general and unified 
• Good benchmarks 
30
Future work 
31
Future work 
• Systematically go from SOS rules to rewrite 
strategies 
31
Future work 
• Systematically go from SOS rules to rewrite 
strategies 
• Create more translations 
31
Future work 
• Systematically go from SOS rules to rewrite 
strategies 
• Create more translations 
• Implement CTL model checking using strategies 
31
Questions ? 
32
Bibliography 
! 
Narciso MartĂ­-Oliet and JosĂŠ Meseguer. Rewriting Logic as a Logical and 
Semantic Framework.1993 
Peter Borovanský and Claude Kirchner and HÊlène Kirchner and Pierre- 
Etienne Moreau and Marian Vittek. ELAN: A logical framework based on 
computational systems. Electronic Notes in Theoretical Computer 
Science 4(0):35 – 50, 1996. 
M Heiner, C Rohr and M Schwarick. MARCIE - Model checking And 
Reachability analysis done effiCIEntly; In Proc. PETRI NETS 2013, Milano, 
Springer, LNCS, volume 7927, pages 389–399, June 2013 
Kordon et al. HTML results from the Model Checking Contest @ Petri Net 
(2014 edition). http://mcc.lip6.fr/2014, 2014 
33
The paper for this presentation can 
be found at: http:// 
edmundo.lopezbobeda.net/ 
publications 
34

Weitere ähnliche Inhalte

Andere mochten auch

Unfolding Data - Interaction Design for Visualizations of Geospatial Data
Unfolding Data - Interaction Design for Visualizations of Geospatial DataUnfolding Data - Interaction Design for Visualizations of Geospatial Data
Unfolding Data - Interaction Design for Visualizations of Geospatial DataTill Nagel
 
Unfolding the City - Urban Mobility Visualizations
Unfolding the City - Urban Mobility VisualizationsUnfolding the City - Urban Mobility Visualizations
Unfolding the City - Urban Mobility VisualizationsTill Nagel
 
The Smiley Model - Concept Model for designing engaging and motivating game...
The Smiley Model  -  Concept Model for designing engaging and motivating game...The Smiley Model  -  Concept Model for designing engaging and motivating game...
The Smiley Model - Concept Model for designing engaging and motivating game...CharlotteLarke
 
Debra Shepard masccc 2013
Debra Shepard masccc 2013Debra Shepard masccc 2013
Debra Shepard masccc 2013Jen Boudrie
 

Andere mochten auch (8)

Unfolding Data - Interaction Design for Visualizations of Geospatial Data
Unfolding Data - Interaction Design for Visualizations of Geospatial DataUnfolding Data - Interaction Design for Visualizations of Geospatial Data
Unfolding Data - Interaction Design for Visualizations of Geospatial Data
 
Unfolding the City - Urban Mobility Visualizations
Unfolding the City - Urban Mobility VisualizationsUnfolding the City - Urban Mobility Visualizations
Unfolding the City - Urban Mobility Visualizations
 
The Smiley Model - Concept Model for designing engaging and motivating game...
The Smiley Model  -  Concept Model for designing engaging and motivating game...The Smiley Model  -  Concept Model for designing engaging and motivating game...
The Smiley Model - Concept Model for designing engaging and motivating game...
 
Debra Shepard masccc 2013
Debra Shepard masccc 2013Debra Shepard masccc 2013
Debra Shepard masccc 2013
 
AWS Lambda
AWS LambdaAWS Lambda
AWS Lambda
 
Of Lambdas and LINQ
Of Lambdas and LINQOf Lambdas and LINQ
Of Lambdas and LINQ
 
Break Even Analysis
Break Even AnalysisBreak Even Analysis
Break Even Analysis
 
A Rewriting Approach to Concurrent Programming Language Design and Semantics
A Rewriting Approach to Concurrent Programming Language Design and SemanticsA Rewriting Approach to Concurrent Programming Language Design and Semantics
A Rewriting Approach to Concurrent Programming Language Design and Semantics
 

Ähnlich wie Towards a General Approach for Symbolic Model-Checker Prototyping

nlp2.pdf
nlp2.pdfnlp2.pdf
nlp2.pdfnyomans1
 
modeling.ppt
modeling.pptmodeling.ppt
modeling.pptssuser1d6968
 
Relations as Executable Specifications
Relations as Executable SpecificationsRelations as Executable Specifications
Relations as Executable SpecificationsNuno Macedo
 
Compilation
CompilationCompilation
Compilationmagansandu
 
Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...
Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...
Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...Maurice Naftalin
 
RuleML 2015 Constraint Handling Rules - What Else?
RuleML 2015 Constraint Handling Rules - What Else?RuleML 2015 Constraint Handling Rules - What Else?
RuleML 2015 Constraint Handling Rules - What Else?RuleML
 
2 BytesC++ course_2014_c1_basicsc++
2 BytesC++ course_2014_c1_basicsc++2 BytesC++ course_2014_c1_basicsc++
2 BytesC++ course_2014_c1_basicsc++kinan keshkeh
 
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...openCypher
 
AI_Planning.pdf
AI_Planning.pdfAI_Planning.pdf
AI_Planning.pdfSUSHMARATHI3
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageNeo4j
 
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsMethods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsRyan B Harvey, CSDP, CSM
 
m7-logic.ppt
m7-logic.pptm7-logic.ppt
m7-logic.pptCarlosUmaa32
 
Differential Semantics
Differential SemanticsDifferential Semantics
Differential SemanticsJohnBender35
 
Adbms 40 heuristics in query optimization
Adbms 40 heuristics in query optimizationAdbms 40 heuristics in query optimization
Adbms 40 heuristics in query optimizationVaibhav Khanna
 

Ähnlich wie Towards a General Approach for Symbolic Model-Checker Prototyping (20)

nlp2.pdf
nlp2.pdfnlp2.pdf
nlp2.pdf
 
modeling.ppt
modeling.pptmodeling.ppt
modeling.ppt
 
Relations as Executable Specifications
Relations as Executable SpecificationsRelations as Executable Specifications
Relations as Executable Specifications
 
201801 CSE240 Lecture 07
201801 CSE240 Lecture 07201801 CSE240 Lecture 07
201801 CSE240 Lecture 07
 
Compilation
CompilationCompilation
Compilation
 
Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...
Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...
Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...
 
RuleML 2015 Constraint Handling Rules - What Else?
RuleML 2015 Constraint Handling Rules - What Else?RuleML 2015 Constraint Handling Rules - What Else?
RuleML 2015 Constraint Handling Rules - What Else?
 
c
cc
c
 
2 BytesC++ course_2014_c1_basicsc++
2 BytesC++ course_2014_c1_basicsc++2 BytesC++ course_2014_c1_basicsc++
2 BytesC++ course_2014_c1_basicsc++
 
Repair dagstuhl jan2017
Repair dagstuhl jan2017Repair dagstuhl jan2017
Repair dagstuhl jan2017
 
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
 
AI_Planning.pdf
AI_Planning.pdfAI_Planning.pdf
AI_Planning.pdf
 
SQL- Introduction to SQL Set Operations
SQL- Introduction to SQL Set OperationsSQL- Introduction to SQL Set Operations
SQL- Introduction to SQL Set Operations
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query Language
 
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsMethods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
 
m7-logic.ppt
m7-logic.pptm7-logic.ppt
m7-logic.ppt
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Introduction to r
Introduction to rIntroduction to r
Introduction to r
 
Differential Semantics
Differential SemanticsDifferential Semantics
Differential Semantics
 
Adbms 40 heuristics in query optimization
Adbms 40 heuristics in query optimizationAdbms 40 heuristics in query optimization
Adbms 40 heuristics in query optimization
 

KĂźrzlich hochgeladen

Behavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfBehavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfSELF-EXPLANATORY
 
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Topic 9- General Principles of International Law.pptx
Topic 9- General Principles of International Law.pptxTopic 9- General Principles of International Law.pptx
Topic 9- General Principles of International Law.pptxJorenAcuavera1
 
《Queensland毕业文凭-昆士兰大学毕业证成绩单》
《Queensland毕业文凭-昆士兰大学毕业证成绩单》《Queensland毕业文凭-昆士兰大学毕业证成绩单》
《Queensland毕业文凭-昆士兰大学毕业证成绩单》rnrncn29
 
Harmful and Useful Microorganisms Presentation
Harmful and Useful Microorganisms PresentationHarmful and Useful Microorganisms Presentation
Harmful and Useful Microorganisms Presentationtahreemzahra82
 
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPirithiRaju
 
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...Universidade Federal de Sergipe - UFS
 
Pests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdfPests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdfPirithiRaju
 
Volatile Oils Pharmacognosy And Phytochemistry -I
Volatile Oils Pharmacognosy And Phytochemistry -IVolatile Oils Pharmacognosy And Phytochemistry -I
Volatile Oils Pharmacognosy And Phytochemistry -INandakishor Bhaurao Deshmukh
 
Fertilization: Sperm and the egg—collectively called the gametes—fuse togethe...
Fertilization: Sperm and the egg—collectively called the gametes—fuse togethe...Fertilization: Sperm and the egg—collectively called the gametes—fuse togethe...
Fertilization: Sperm and the egg—collectively called the gametes—fuse togethe...D. B. S. College Kanpur
 
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptx
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptxRESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptx
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptxFarihaAbdulRasheed
 
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptxLIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptxmalonesandreagweneth
 
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptxTHE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptxNandakishor Bhaurao Deshmukh
 
Bioteknologi kelas 10 kumer smapsa .pptx
Bioteknologi kelas 10 kumer smapsa .pptxBioteknologi kelas 10 kumer smapsa .pptx
Bioteknologi kelas 10 kumer smapsa .pptx023NiWayanAnggiSriWa
 
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)User Guide: Pulsar™ Weather Station (Columbia Weather Systems)
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)Columbia Weather Systems
 
Citronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayCitronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayupadhyaymani499
 
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 GenuineCall Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuinethapagita
 
The dark energy paradox leads to a new structure of spacetime.pptx
The dark energy paradox leads to a new structure of spacetime.pptxThe dark energy paradox leads to a new structure of spacetime.pptx
The dark energy paradox leads to a new structure of spacetime.pptxEran Akiva Sinbar
 
BUMI DAN ANTARIKSA PROJEK IPAS SMK KELAS X.pdf
BUMI DAN ANTARIKSA PROJEK IPAS SMK KELAS X.pdfBUMI DAN ANTARIKSA PROJEK IPAS SMK KELAS X.pdf
BUMI DAN ANTARIKSA PROJEK IPAS SMK KELAS X.pdfWildaNurAmalia2
 

KĂźrzlich hochgeladen (20)

Behavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfBehavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdf
 
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
 
Topic 9- General Principles of International Law.pptx
Topic 9- General Principles of International Law.pptxTopic 9- General Principles of International Law.pptx
Topic 9- General Principles of International Law.pptx
 
《Queensland毕业文凭-昆士兰大学毕业证成绩单》
《Queensland毕业文凭-昆士兰大学毕业证成绩单》《Queensland毕业文凭-昆士兰大学毕业证成绩单》
《Queensland毕业文凭-昆士兰大学毕业证成绩单》
 
Harmful and Useful Microorganisms Presentation
Harmful and Useful Microorganisms PresentationHarmful and Useful Microorganisms Presentation
Harmful and Useful Microorganisms Presentation
 
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
 
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...
 
Pests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdfPests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdf
 
Hot Sexy call girls in Moti Nagar,🔝 9953056974 🔝 escort Service
Hot Sexy call girls in  Moti Nagar,🔝 9953056974 🔝 escort ServiceHot Sexy call girls in  Moti Nagar,🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Moti Nagar,🔝 9953056974 🔝 escort Service
 
Volatile Oils Pharmacognosy And Phytochemistry -I
Volatile Oils Pharmacognosy And Phytochemistry -IVolatile Oils Pharmacognosy And Phytochemistry -I
Volatile Oils Pharmacognosy And Phytochemistry -I
 
Fertilization: Sperm and the egg—collectively called the gametes—fuse togethe...
Fertilization: Sperm and the egg—collectively called the gametes—fuse togethe...Fertilization: Sperm and the egg—collectively called the gametes—fuse togethe...
Fertilization: Sperm and the egg—collectively called the gametes—fuse togethe...
 
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptx
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptxRESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptx
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptx
 
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptxLIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
 
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptxTHE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
 
Bioteknologi kelas 10 kumer smapsa .pptx
Bioteknologi kelas 10 kumer smapsa .pptxBioteknologi kelas 10 kumer smapsa .pptx
Bioteknologi kelas 10 kumer smapsa .pptx
 
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)User Guide: Pulsar™ Weather Station (Columbia Weather Systems)
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)
 
Citronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayCitronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyay
 
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 GenuineCall Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
 
The dark energy paradox leads to a new structure of spacetime.pptx
The dark energy paradox leads to a new structure of spacetime.pptxThe dark energy paradox leads to a new structure of spacetime.pptx
The dark energy paradox leads to a new structure of spacetime.pptx
 
BUMI DAN ANTARIKSA PROJEK IPAS SMK KELAS X.pdf
BUMI DAN ANTARIKSA PROJEK IPAS SMK KELAS X.pdfBUMI DAN ANTARIKSA PROJEK IPAS SMK KELAS X.pdf
BUMI DAN ANTARIKSA PROJEK IPAS SMK KELAS X.pdf
 

Towards a General Approach for Symbolic Model-Checker Prototyping

  • 1. Towards a General Approach for Symbolic Model-Checker Prototyping Edmundo LĂłpez BĂłbeda, Maximilien Colange, Didier Buchs Wednesday, September 24th 2014 - Enschede, Netherlands 1
  • 3. Your awesome DSL Abstract semantics 2
  • 4. Your awesome DSL Abstract semantics Symbolic Model checker 2
  • 5. Your awesome DSL Abstract semantics 3
  • 6. Your awesome DSL Abstract semantics Existing Symbolic Model checker 3
  • 7. Your awesome DSL Abstract semantics Translation Existing Symbolic Model checker 3
  • 8. Your awesome DSL Abstract semantics Translation Existing Symbolic Model checker 4
  • 9. Your awesome DSL Translation Existing Symbolic Model checker 4
  • 10. Your awesome DSL Translation Existing Symbolic Model checker 4
  • 11. Your awesome DSL Existing Symbolic Model checker 4 }Too much work! Translation
  • 12. Your awesome DSL Existing Symbolic Model checker 4 }Too much work! Translation high level data structures
  • 13. Your awesome DSL Existing Symbolic Model checker 4 }Too much work! Translation high level data structures custom operations
  • 14. Your awesome DSL Existing Symbolic Model checker 4 }Too much work! Translation high level data structures custom operations rich data types
  • 15. Your awesome DSL Existing Symbolic Model checker 4 }Too much work! Translation high level data structures custom operations rich data types low level
  • 16. Your awesome DSL Existing Symbolic Model checker 4 }Too much work! Translation high level data structures custom operations rich data types low level fixed primitives operations
  • 17. Your awesome DSL Abstract semantics Translation Set rewriting Translation Decision diagrams 5
  • 18. Your awesome DSL Abstract semantics approach {Our Translation Translation Set rewriting Decision diagrams 5
  • 19. Your awesome DSL Abstract semantics approach {Our Translation Translation Set rewriting Decision diagrams 5 }Our contribution
  • 20. Abstract semantics In context 6 Your awesome DSL Abstract semantics Translation Set rewriting Translation Decision diagrams
  • 21. Abstract semantics In context • High level representation 6 Your awesome DSL Abstract semantics Translation Set rewriting Translation Decision diagrams
  • 22. Abstract semantics In context • High level representation • Suitable for humans 6 Your awesome DSL Abstract semantics Translation Set rewriting Translation Decision diagrams
  • 23. Abstract semantics Variable assignation 7 s hB := c, si ! s[B = k/B = c]
  • 24. Abstract semantics Variable assignation • Let s be a state of a system 7 s hB := c, si ! s[B = k/B = c]
  • 25. Abstract semantics Variable assignation • Let s be a state of a system • s = {A = k1, B = k2, …} 7 s hB := c, si ! s[B = k/B = c]
  • 26. Abstract semantics Variable assignation • Let s be a state of a system • s = {A = k1, B = k2, …} • k, k1, k2, c ∈ 퓝 7 s hB := c, si ! s[B = k/B = c]
  • 27. Abstract semantics Variable assignation • Let s be a state of a system • s = {A = k1, B = k2, …} • k, k1, k2, c ∈ 퓝 • A, B, etc variable names 7 s hB := c, si ! s[B = k/B = c]
  • 28. Set rewriting In context 8 Your awesome DSL Abstract semantics Translation Set rewriting Translation Decision diagrams
  • 29. Set rewriting In context • Rewriting and strategies 8 Your awesome DSL Abstract semantics Translation Set rewriting Translation Decision diagrams
  • 30. Set rewriting In context • Rewriting and strategies • Good semantic framework [MartĂ­-Oliet & Meseguer 1993] 8 Your awesome DSL Abstract semantics Translation Set rewriting Translation Decision diagrams
  • 31. Set rewriting In context • Rewriting and strategies • Good semantic framework [MartĂ­-Oliet & Meseguer 1993] • Operational semantics 8 Your awesome DSL Abstract semantics Translation Set rewriting Translation Decision diagrams
  • 32. Set rewriting A state • Variables • var(A, 0, var(B, 2, var(C, 3, empty))) 9
  • 33. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] 10
  • 34. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] • var(A, 0, var(B, 2, var(C, 3, empty))) 10
  • 35. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] • var(A, 0, var(B, 2, var(C, 3, empty))) • var(B, $x, $s) ⤳ var(B, c, $s), k ∈ 퓝 10
  • 36. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] • var(A, 0, var(B, 2, var(C, 3, empty))) • var(B, $x, $s) ⤳ var(B, c, $s), k ∈ 퓝 • Problem: 10
  • 37. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] • var(A, 0, var(B, 2, var(C, 3, empty))) • var(B, $x, $s) ⤳ var(B, c, $s), k ∈ 퓝 • Problem: • Non determinism ⇒ performance hit, ambiguity 10
  • 38. Rewriting strategies Goal • Introduced in ELAN [BorovanskĂ˝ et al.1996] 11
  • 39. Rewriting strategies Goal • Introduced in ELAN [BorovanskĂ˝ et al.1996] • Control rewriting 11
  • 40. Rewriting strategies Goal • Introduced in ELAN [BorovanskĂ˝ et al.1996] • Control rewriting • Avoid ambiguity 11
  • 41. Rewriting strategies Goal • Introduced in ELAN [BorovanskĂ˝ et al.1996] • Control rewriting • Avoid ambiguity • Improve speed 11
  • 42. Rewriting strategies What are they Rewrite rules 12
  • 43. Rewriting strategies What are they Strategies Rewrite rules 12
  • 44. Rewriting strategies Basic strategy • Basic strategy (A list of rewrite rules) 13
  • 45. Rewriting strategies Basic strategy • Basic strategy (A list of rewrite rules) • Application to root term only 13
  • 46. Rewriting strategies Basic strategy • Basic strategy (A list of rewrite rules) • Application to root term only • The first applicable rule is applied 13
  • 47. Rewriting strategies Basic strategy • Basic strategy (A list of rewrite rules) • Application to root term only • The first applicable rule is applied • Otherwise, fail 13
  • 48. Rewriting strategies Other useful strategies 14
  • 49. Rewriting strategies Other useful strategies • Identity[t] = t 14
  • 50. Rewriting strategies Other useful strategies • Identity[t] = t • Fail[t], always fails 14
  • 51. Rewriting strategies 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 14
  • 52. Rewriting strategies 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 14
  • 53. Rewriting strategies 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
  • 54. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] 15
  • 55. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] • var(A, 0, var(B, 2, var(C, 3, empty))) 15
  • 56. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] • var(A, 0, var(B, 2, var(C, 3, empty))) • assignK = { var(B, $x, $s) ⤳ var(B, c, $s) } 15
  • 57. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] • var(A, 0, var(B, 2, var(C, 3, empty))) • assignK = { var(B, $x, $s) ⤳ var(B, c, $s) } • applyToB(S) = S orElse (Subterm3(applyToB(S))) 15
  • 58. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] • var(A, 0, var(B, 2, var(C, 3, empty))) • assignK = { var(B, $x, $s) ⤳ var(B, c, $s) } • applyToB(S) = S orElse (Subterm3(applyToB(S))) • transition = applyToB(assignK) 15
  • 59. Set rewriting Operational semantics / Variable Assignation s hB := c, si ! s[B = k/B = c] assignK = { var(B, $x, $s) ⤳ var(B, c, $s) } applyToB(S) = S orElse (Subterm3(applyToB(S))) transition = applyToB(assignK) 16
  • 60. Set rewriting Set extension • In practice • Strategies and rewrite rules applied to sets of terms • Allow also to describe model checking computation 17
  • 61. Set rewriting Set extension 18
  • 62. Set rewriting Set extension • Natural extension • S[{t1, …, tn}] = {S[t1], …, S[tn]} 18
  • 63. Set rewriting Set extension • Natural extension • S[{t1, …, tn}] = {S[t1], …, S[tn]} • Set strategies, T = {t1, …, tn} • Union(S1, S2)[T] = S1[T] U S2[T], if both succeed • Fixpoint(S)[T] = ÎźT.S[T] 18
  • 64. Set rewriting Computing state space 19
  • 65. Set rewriting Computing state space 19 s hB := c, si ! s[B = k/B = c] transition1 = …
  • 66. Set rewriting Computing state space 19 s hB := c, si ! s[B = k/B = c] transition1 = … semantic formula 2 transition2 = …
  • 67. Set rewriting Computing state space 19 s hB := c, si ! s[B = k/B = c] transition1 = … semantic formula 2 transition2 = … …
  • 68. Set rewriting Computing state space 19 s hB := c, si ! s[B = k/B = c] transition1 = … semantic formula 2 transition2 = … … semantic formula n transitionn = …
  • 69. Set rewriting Computing state space 19 s hB := c, si ! s[B = k/B = c] transition1 = … semantic formula 2 transition2 = … … semantic formula n transitionn = … calculateSS = Fixpoint(Union(transition1, transition2, …, transitionn))
  • 70. Set rewriting Saturation: For connaisseurs 20
  • 71. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique 20
  • 72. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect 20
  • 73. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) 20
  • 74. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 75. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 76. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 77. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 78. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 79. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 80. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 81. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 82. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 83. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 84. Set rewriting Saturation: For connaisseurs • Well known DD optimization technique • Apply local fixpoint in order to reduce peak effect • Satn(S) = (Subtermn(Satn(S)) orElse FixPoint(S)) andThen Fixpoint(S) var(A, 1, var(B, 2, var(C, 0, empty ))) 20
  • 85. Decision Diagrams In context • Fast • Large state spaces • Suitable for model checking 21 Your awesome DSL Abstract semantics Translation Set rewriting Translation Decision diagrams
  • 86. The idea is that you never have to think in terms of DD again… so we won’t talk about them :-) 22
  • 87. Implementation • We have a tool that implements the approach 23
  • 88. Implementation • We have a tool that implements the approach • Stratagem http://sourceforge.net/projects/stratagem-mc/ (written in Java and Scala) 23
  • 89. Implementation • We have a tool that implements the approach • Stratagem http://sourceforge.net/projects/stratagem-mc/ (written in Java and Scala) • ~3700 lines of Scala code (DD and Strategies engine) 23
  • 90. Implementation • We have a tool that implements the approach • Stratagem http://sourceforge.net/projects/stratagem-mc/ (written in Java and Scala) • ~3700 lines of Scala code (DD and Strategies engine) • Java code generated from model (Eclipse EMF, XText) 23
  • 91. Implementation • We have a tool that implements the approach • Stratagem http://sourceforge.net/projects/stratagem-mc/ (written in Java and Scala) • ~3700 lines of Scala code (DD and Strategies engine) • Java code generated from model (Eclipse EMF, XText) • Implemented translation for Petri nets 23
  • 92. Implementation • We have a tool that implements the approach • Stratagem http://sourceforge.net/projects/stratagem-mc/ (written in Java and Scala) • ~3700 lines of Scala code (DD and Strategies engine) • Java code generated from model (Eclipse EMF, XText) • Implemented translation for Petri nets • Implemented translation for SPIN-like formalism 23
  • 94. Practical results Presentation • Petri nets taken from the Model checking contest @ PETRI NETS 2014 [Kordon et al. 2014] 24
  • 95. Practical results Presentation • Petri nets taken from the Model checking contest @ PETRI NETS 2014 [Kordon et al. 2014] • Marcie [Heiner et al. 2013] was the best model checker for the state space category 24
  • 96. Practical results Presentation • Petri nets taken from the Model checking contest @ PETRI NETS 2014 [Kordon et al. 2014] • Marcie [Heiner et al. 2013] was the best model checker for the state space category • Since then we only improved the translation 24
  • 98. Practical results Kanban problem • Small Petri net 25
  • 99. Practical results Kanban problem • Small Petri net • 16 places & 16 transitions, marking changes with scale parameter 25
  • 100. Practical results Kanban problem • Small Petri net • 16 places & 16 transitions, marking changes with scale parameter • State space for scale parameter 100 25
  • 101. Practical results Kanban problem • Small Petri net • 16 places & 16 transitions, marking changes with scale parameter • State space for scale parameter 100 • 1.7263 ¡1019 states 25
  • 102. Practical results Kanban problem Marcie Stratagem 10 20 50 100 26 100 Time in seconds 0.1 10 1 Model size (scale parameter)
  • 103. Practical results Kanban problem Marcie Stratagem 10 20 50 100 26 100 Time in seconds 0.1 10 1 Model size (scale parameter)
  • 104. Practical results Kanban problem Marcie Stratagem 10 20 50 100 26 100 Time in seconds 0.1 10 1 Model size (scale parameter)
  • 106. Practical results Sharedmem problem • Petri net’s places and transition increase with scale parameter 27
  • 107. Practical results Sharedmem problem • Petri net’s places and transition increase with scale parameter • 2651 places & 5050 transitions for scale parameter 50 27
  • 108. Practical results Sharedmem problem • Petri net’s places and transition increase with scale parameter • 2651 places & 5050 transitions for scale parameter 50 • State space for scale parameter 50 27
  • 109. Practical results Sharedmem problem • Petri net’s places and transition increase with scale parameter • 2651 places & 5050 transitions for scale parameter 50 • State space for scale parameter 50 • 5.87 ¡1026 states 27
  • 110. Practical results SharedMem problem Marcie Stratagem 5 10 20 50 28 Time in seconds 1000 100 10 1 0.1 Model size (scale parameter)
  • 111. Practical results SharedMem problem Marcie Stratagem 5 10 20 50 28 Time in seconds 1000 100 10 1 0.1 Model size (scale parameter)
  • 112. Practical results SharedMem problem Marcie Stratagem 5 10 20 50 28 Time in seconds 1000 100 10 1 0.1 Model size (scale parameter)
  • 114. Limitations • Non-linear rules are not allowed (but can be simulated) 29
  • 115. Limitations • Non-linear rules are not allowed (but can be simulated) • Verification not yet implemented 29
  • 117. Conclusions • New approach 30
  • 118. Conclusions • New approach • Better results just by changing the strategy 30
  • 119. Conclusions • New approach • Better results just by changing the strategy • More general and unified 30
  • 120. Conclusions • New approach • Better results just by changing the strategy • More general and unified • Good benchmarks 30
  • 122. Future work • Systematically go from SOS rules to rewrite strategies 31
  • 123. Future work • Systematically go from SOS rules to rewrite strategies • Create more translations 31
  • 124. Future work • Systematically go from SOS rules to rewrite strategies • Create more translations • Implement CTL model checking using strategies 31
  • 126. Bibliography ! Narciso MartĂ­-Oliet and JosĂŠ Meseguer. Rewriting Logic as a Logical and Semantic Framework.1993 Peter BorovanskĂ˝ and Claude Kirchner and HĂŠlène Kirchner and Pierre- Etienne Moreau and Marian Vittek. ELAN: A logical framework based on computational systems. Electronic Notes in Theoretical Computer Science 4(0):35 – 50, 1996. M Heiner, C Rohr and M Schwarick. MARCIE - Model checking And Reachability analysis done effiCIEntly; In Proc. PETRI NETS 2013, Milano, Springer, LNCS, volume 7927, pages 389–399, June 2013 Kordon et al. HTML results from the Model Checking Contest @ Petri Net (2014 edition). http://mcc.lip6.fr/2014, 2014 33
  • 127. The paper for this presentation can be found at: http:// edmundo.lopezbobeda.net/ publications 34