Download presentation

Presentation is loading. Please wait.

Published byRoderick Stokes Modified about 1 year ago

1
Syntax-driven partitioning for model-checking of Esterel programs Eric Vecchié - INRIA Aoste

2
Motivation Build the Reachable State Space… …following the syntax abort P when S; Q Reachable State Space allows –Model-checking –Code optimization –Test sequence generation –…–…

3
R ← INIT new ← R while ( new ≠ ø ) do new ← Image(new) \ R R ← R U new end while Reachable State Space Breadth First Search algorithm Symbolic methods (BDDs)

4
What is done

5
Size of Computations Solution : Rely on program structural syntax BDD size states reached non-saturated states set

6
What we do

7
Example : Wristwatch display watch time_setalarm_set stopwatch

8
Example : Wristwatch

9

10
How to partition ? According to program blocks –Separated by frontiers –Synthesized from signal receptions Build a control flow graph –Encoding frontiers –Guiding the RSS computation

11
Preemption / if-then-else P Q P1P1 P2P2 Q S S

12
abort P when S; present T then Q1 else Q2 end; R P Q2 R Q1 Partitioning Example

13
Parallel Constructs Avoid cartesian product –{P 1, P 2 } {Q 1, Q 2 } Use signal information || P1P1 Q1Q1 P2P2 Q2Q2

14
Parallel and signals || P1P1 Q1Q1 R1R1 P2P2 Q2Q2 Q3Q3 R2R2 S1 S2

15
Only increasing Avoid the cross product Can be not satisfying on loops –…but on rare cases Parallel and signals

16
Loops P Q

17
pause pause loopend || abort when S present T then else end ; Control Flow Graph construction || pause ;

18
Symbolic methods Boolean functions Sets (in a finite universe) Partitioned Transition Relations Binary Decision Diagrams (BDDs) allow to represent :

19
Cofactoring Given a domain D, reduce the BDD of a function f : f ↑D (x) = f(x) if x belongs to D Cofactoring is used 2 ways –Reduce the domain according to our frontiers –Transition function applied on new states

20
Experiments A medium-sized design : sequencer A big design : cabin

21
BDD sizes in “sequencer”

22
A big design : “cabin” Default methodPartitioning 534 states states 3 steps (11.85s)123 steps (35h40)

23
Conclusion Program verification following program syntax Preemptions, if-then-else Signals in parallels Smaller intermediate BDDs Lighter transition functions Lighter image computations Less memory required

24
The End

25
Motivation Model-checking Code optimization Test sequence generation … Reachable State Space (RSS)

26
R ← INIT new ← R while ( new ≠ ø ) do new ← Image(new) \ R R ← R U new end while Reachable State Space (RSS) Breadth First Search algorithm Symbolic methods (BDDs)

27
Introduction Esterel Synchronous reactive structural programming –sequence, if-then-else –Parallelism, preemption Circuit translation (model-checking level)

28

29

30
Partitioning - detail

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google