Title: Regular Model Checking Made Simple and Efficient
1Regular Model Checking Made Simple and Efficient
- P. Abdulla, B. Jonsson, M. Nilsson and J. dOrso
- Uppsala University
2Presentation Overview
- Aim
- Regular Model Checking
- Subset Construction
- Construction by Matching
- Conclusions
3Aim
- Parameterized systems
- Counters
- Stacks
- queues
Can all be represented by regular languages And
regular relations.
4Regular Model Checking
Represent configurations/transition
relations with finite automata.
(n,n)
(n,n)
(n,t)
(t,n)
Example moving a token to the right
5Regular Model Checking
The transitive closure
(n,n)
(n,n)
(n,n)
(n,t)
(t,n)
Example moving a token arbitrarily to the right
6Regular Model Checking (cont.)
- Problem how do we compute transitive closures ?
- Solution subset construction (BJNT00)
- First step use strings to represent composition
(columns)
Successive runs
One column
7Regular Model Checking (cont.)
8Regular Model Checking (cont.)
9Regular Model Checking (cont.)
10Subset Construction (cont.)
- Problem previous automaton is infinite !
- Second idea apply subset construction
- With regular sets
11Subset Construction (cont.)
Relation R
Construction
(n,n)
12Subset Construction (cont.)
Relation R
Construction
(n,n)
(t,n)
(n,t)
(n,n)
13Subset Construction (cont.)
Relation R
Construction
(n,n)
(n,n)
(t,n)
(n,t)
(n,t)
(n,n)
(n,n)
14Subset Construction (cont.)
Relation R
Construction
(n,n)
(t,n)
(n,n)
(n,n)
(n,t)
(n,t)
(n,n)
(n,n)
15Subset Construction (cont.)
Relation R
Construction
(n,n)
(n,n)
(t,n)
(n,n)
(n,t)
(n,t)
(n,n)
(n,n)
16Subset Construction (cont.)
Practical problems
- Automaton built is deterministic
- Computing the image of a set is expensive
- For many examples, sets obtained are simple
17Our Contribution
Compared with DLS01
- The algorithm uses only local information, not
global reasoning (bisimulations).
18Our Contribution
Compared with BJNT00
- Construction does not rely on determinism
- No image computation, but simple matching
19An Example
(e,e)
(e,e)
(a,e)
(b,a)
(d,b)
(e,d)
L
1
2
3
R
20An Example
Compose automaton twice
(e,e)
(e,e)
(a,e)
(b,e)
(e,b)
(e,d)
(d,a)
L L
1 L
2 1
3 2
R 3
R R
21An Example
(e,e)
(e,e)
(a,e)
(b,e)
(e,b)
(e,d)
(d,a)
L L
1 L
2 1
3 2
R 3
R R
22An Example
(e,e)
(e,e)
(a,e)
(b,a)
(d,b)
(e,d)
L
1
2
3
R
(b,e)
(e,b)
(d,a)
23An Example
(e,e)
(e,e)
(a,e)
(b,a)
(d,b)
(e,d)
L
1
2
3
R
(b,e)
(e,b)
(d,a)
(d,e)
(e,a)
24An Example
(e,e)
(e,e)
(a,e)
(b,a)
(d,b)
(e,d)
L
1
2
3
R
(b,e)
(e,b)
(d,a)
(d,e)
(e,a)
(e,e)
25Construction by Matching
Use sets of form
With each sub-expression being one of
(1)
(2)
(3)
26Construction by Matching (cont.)
Examples of sets
27Construction by Matching (cont.)
Properties of such sets (1) Can be made
canonical representation (2) Closed under an
operation similar to concatenation (3) Induce
equivalence relation
28Property (1)
Canonicity always take the largest set !
29Property (2)
Define operator as follows
if
otherwise
30Property (2)
Using the operator
(a,e)
(e,e)
(a,e)
L L
(a,e)
L
31Property (3)
When can we merge states ?
1
2
1/ 2
32Property (3) (cont.)
Does our equivalence relation satisfy this ? Yes !
L
q
q
q
33Property (3) (cont.)
Property needs to be symmetric !
L
q2
q1
q1
L
q2
q1
34The Algorithm
- Initialization replace copying states q with
q, leave the rest - Step k1 for a transition of step k and a
transition of step 0, if match then add the
combined transition - Stop when reach fixed point.
35Example
(e,e)
(e,e)
(a,e)
(b,a)
(d,b)
(e,d)
L
1
2
3
R
Run the initialization step.
36Example
(e,e)
(e,e)
(a,e)
(b,a)
(d,b)
(e,d)
L
1
2
3
R
37Example
(e,e)
(e,e)
(a,e)
(b,a)
(d,b)
(e,d)
L
1
2
3
R
Match transitions in red.
38Example
(e,e)
(e,e)
(a,e)
(b,a)
(d,b)
(e,d)
L
1
2
3
R
(a,e)
1 L
39Example
(e,e)
(e,e)
(a,e)
(b,a)
(d,b)
(e,d)
L
1
2
3
R
(a,e)
1 L
40Example
(e,e)
(e,e)
(a,e)
(b,a)
(d,b)
(e,d)
L
1
2
3
R
(a,e)
(b,e)
1 L
2 1
41Results
42Future Work
- Extend to other systems e.g. trees, push-down
systems, graphs, etc - Experiment underlying data structure Graphical
interface for this tool