180 likes | 273 Views
Syntax-driven partitioning for model-checking of Esterel programs. Eric Vecchié - INRIA Tick. Introduction. Esterel Synchronous reactive structural programming (structure = sequence, parallel, if-then-else...) circuit translation (gates+registers) Objective
E N D
Syntax-driven partitioning for model-checking of Esterel programs Eric Vecchié - INRIA Tick
Introduction • Esterel • Synchronous reactivestructural 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
The Wristwatch example TIME_SET DISPLAY ALARM_SET STOPWATCH
RSS : Breadth-First Search P abort P when S; present T then Q1 else Q2 end; R Q2 Q1 R
Partitioning - overview Q1 P S R Q2
Sequence / if-then-else S S P1 P1 P2 S P2 P3 Q
Parallel and signals || P1 Q1 R1 S1 P2 Q2 S2 Q3 R2
How to partition ? • Partition register structure according to program blocks • 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
Symbolic methods Binary Decision Diagrams (BDDs) allow to represent : • Boolean functions • Sets (in a finite universe) • Partitioned Transition Relations (according to individual target registers)
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
Control Flow Graph construction abort loop pause end ; present T then pause ; pause pause pause || || when S else pause end
Problem on loops P Q
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