Syntax-driven partitioning for model-checking of Esterel programs
description
Transcript of Syntax-driven partitioning for model-checking of Esterel programs
![Page 1: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/1.jpg)
Syntax-driven partitioning for model-checking of Esterel
programs
Eric Vecchié - INRIA Tick
![Page 2: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/2.jpg)
Introduction
• Esterel– Synchronous reactive structural programming
(structure = sequence, parallel, if-then-else...)
– circuit translation (gates+registers)
• Objective– Efficient Reachable State Space computation
• Contribution– Rely on program structural syntax to reduce the
size of intermediate computations
![Page 3: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/3.jpg)
The Wristwatch example
ALARM_SET
TIME_SET
STOPWATCH
DISPLAY
![Page 4: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/4.jpg)
abort Pwhen S;present T then Q1else Q2end;R
RSS : Breadth-First Search
P
Q2
R
Q1
![Page 5: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/5.jpg)
P
Partitioning - overview
Q1
Q2
R
S
![Page 6: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/6.jpg)
Partitioning - detail
![Page 7: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/7.jpg)
Sequence / if-then-else
P1
P2
P3
P1 P2
Q
SS
S
![Page 8: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/8.jpg)
Parallel and signals||
P1 Q1
R1
P2
Q2
Q3 R2
S1
S2
![Page 9: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/9.jpg)
How to partition ?
• Frontiers synthesized from signal receptions
present statements
abort statements
Only enlarging (removing frontiers) but applying
to pending states past "last" frontier
• Generated from control flow graph
• Partition register structure according to program blocks
![Page 10: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/10.jpg)
Symbolic methods
• Boolean functions
• Sets (in a finite universe)
• Partitioned Transition Relations
(according to individual target registers)
Binary Decision Diagrams (BDDs) allow to represent :
![Page 11: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/11.jpg)
Cofactoring
Given a domain D, reduce the BDD of a function f :f↑D(x) = f(x) if x belongs to D
Reduces individual transition functions relative to source domain
![Page 12: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/12.jpg)
pause
pause
loop end||
abort
when S
present T then
else
end
;
Control Flow Graph construction
|| pausepausepause pause;
![Page 13: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/13.jpg)
Problem on loops
PQ
![Page 14: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/14.jpg)
![Page 15: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/15.jpg)
![Page 16: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/16.jpg)
![Page 17: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/17.jpg)
![Page 18: Syntax-driven partitioning for model-checking of Esterel programs](https://reader035.fdocuments.us/reader035/viewer/2022062500/568150e4550346895dbf01d9/html5/thumbnails/18.jpg)
Conclusion
Program verification following program syntax
• Sequences, if-then-else
• Signals in parallels
Less memory required
• Smaller intermediate BDDs
• Lighter transition relation
• Lighter image computation