Title: Syntaxdriven partitioning for modelchecking of Esterel programs
1Syntax-driven partitioning for model-checking of
Esterel programs
- Eric Vecchié - INRIA Aoste
2Motivation
- Build the Reachable State Space
- following the syntax
- abort P when S
- Q
- Reachable State Space allows
- Model-checking
- Code optimization
- Test sequence generation
3Reachable State Space
- Breadth First Search algorithm
R ? INIT new ? R while ( new ? ø ) do new ?
Image(new) \ R R ? R U new end while
4What is done
5Size of Computations
BDD size
non-saturated states set
states reached
- Solution Rely on program structural syntax
6What we do
7Example Wristwatch
watch
stopwatch
display
time_set
alarm_set
8Example Wristwatch
9Example Wristwatch
10How to partition ?
- According to program blocks
- Separated by frontiers
- Synthesized from signal receptions
- Build a control flow graph
- Encoding frontiers
- Guiding the RSS computation
11Preemption / if-then-else
S
P
S
P1
P2
Q
Q
12Partitioning Example
P
abort P when S present T then Q1 else
Q2 end R
Q2
Q1
R
13Parallel Constructs
- Avoid cartesian product
- P1, P2 ? Q1, Q2
- Use signal information
P1
Q1
P2
Q2
14Parallel and signals
P1
Q1
R1
S1
P2
Q2
S2
Q3
R2
15Parallel and signals
- Only increasing
- ? Avoid the cross product
- Can be not satisfying on loops
- but on rare cases
16Loops
P
Q
17Control Flow Graph construction
abort
pause
loop
end
present T then
pause
pause
pause
pause
when S
else
pause
end
18Symbolic methods
Binary Decision Diagrams (BDDs) allow to
represent
- Boolean functions
- Sets (in a finite universe)
- Partitioned Transition Relations
19Cofactoring
- Cofactoring is used 2 ways
- Reduce the domain according to our frontiers
- Transition function applied on new states
Given a domain D, reduce the BDD of a function f
f?D(x) f(x) if x belongs to D
20Experiments
- A medium-sized design sequencer
- A big design cabin
21BDD sizes in sequencer
22A big design cabin
23Conclusion
- Program verification following program syntax
- Preemptions, if-then-else
- Signals in parallels
- Smaller intermediate BDDs
- Lighter transition functions
- Lighter image computations
- ? Less memory required
24The End
25Motivation
- Model-checking
- Code optimization
- Test sequence generation
Reachable State Space (RSS)
26- Breadth First Search algorithm
R ? INIT new ? R while ( new ? ø ) do new ?
Image(new) \ R R ? R U new end while
Reachable State Space (RSS)
27Introduction
- Esterel
- Synchronous reactive structural programming
- sequence, if-then-else
- Parallelism, preemption
- Circuit translation (model-checking level)
28(No Transcript)
29(No Transcript)
30Partitioning - detail