Symbolic Simulation of Dataflow Synchronous Programs with Timers

The synchronous language Lustre and its descendants have long been used to program and model discrete con-trollers. Recent work shows how to mix discrete and continuous elements in a Lustre-like language called Zelus. The resulting hybrid programs are deterministic and can be simulated with a numerical solver. In this article, we focus on a subset of hybrid programs where continuous behaviors are expressed using timers, nondeterministic guards, and invariants, as in Timed Safety Automata. We propose a source-to-source compilation pass to generate discrete code that, coupled with standard operations on Difference-Bound Matrices, produces symbolic traces that each represent a set of concrete traces.

[1]  Antoine Mid The Octagon Abstract Domain , 2001 .

[2]  Wang Yi,et al.  Uppaal in a nutshell , 1997, International Journal on Software Tools for Technology Transfer.

[3]  David L. Dill,et al.  Timing Assumptions and Verification of Finite-State Concurrent Systems , 1989, Automatic Verification Methods for Finite State Systems.

[4]  Michel Poize,et al.  TAXYS=Esterel+Kronos. A tool for verifying real-time properties of embedded systems , 2001, Proceedings of the 40th IEEE Conference on Decision and Control (Cat. No.01CH37228).

[5]  Kim G. Larsen,et al.  The Impressive Power of Stopwatches , 2000, CONCUR.

[6]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[7]  Heike Wehrheim,et al.  Timed Automata Verification via IC3 with Zones , 2014, ICFEM.

[8]  David Garriou,et al.  Symbolic Simulation of Synchronous Programs , 2002, SLAP@ETAPS.

[9]  Thomas A. Henzinger,et al.  Symbolic Model Checking for Real-Time Systems , 1994, Inf. Comput..

[10]  Cesare Tinelli,et al.  Scaling Up the Formal Verification of Lustre Programs with SMT-Based Techniques , 2008, 2008 Formal Methods in Computer-Aided Design.

[11]  Pascal Raymond,et al.  Lutin: A Language for Specifying and Executing Reactive Scenarios , 2008, EURASIP J. Embed. Syst..

[12]  Klaus Schneider,et al.  From synchronous programs to symbolic representations of hybrid systems , 2010, HSCC '10.

[13]  Cesare Tinelli,et al.  The Kind 2 Model Checker , 2016, CAV.

[14]  Timothy Bourke,et al.  A hybrid synchronous language with hierarchical automata: Static typing and translation to synchronous code , 2011, 2011 Proceedings of the Ninth ACM International Conference on Embedded Software (EMSOFT).

[15]  Pascal Raymond,et al.  Specifying and Executing Reactive Scenarios With Lutin , 2008, SLA++P@ETAPS.

[16]  Frits W. Vaandrager,et al.  Analysis of a biphase mark protocol with Uppaal and PVS , 2006, Formal Aspects of Computing.

[17]  Marc Pouzet,et al.  Zélus: a synchronous language with ODEs , 2013, HSCC '13.

[18]  Christoph Scholl,et al.  Fully Symbolic Model Checking for Timed Automata , 2011, MBMV.

[19]  Ilkka Niemelä,et al.  SMT-Based Induction Methods for Timed Systems , 2012, FORMATS.

[20]  Antoine Miné,et al.  The octagon abstract domain , 2001, High. Order Symb. Comput..

[21]  Florence Maraninchi,et al.  Verifying Quantitative Real-Time Properties of Synchronous Programs , 1993, CAV.

[22]  Guillaume Baudart,et al.  A Synchronous Approach to Quasi-Periodic Systems , 2017 .

[23]  Rajeev Alur,et al.  Formal verification of hybrid systems , 2011, 2011 Proceedings of the Ninth ACM International Conference on Embedded Software (EMSOFT).

[24]  Nicolas Halbwachs,et al.  Delay Analysis in Synchronous Programs , 1993, CAV.

[25]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[26]  Nicolas Halbwachs,et al.  LUSTRE: a declarative language for real-time programming , 1987, POPL '87.

[27]  Bernard Berthomieu,et al.  An Enumerative Approach for Analyzing Time Petri Nets , 1983, IFIP Congress.

[28]  Johan Bengtsson,et al.  Clocks, DBMS and States in Timed Systems , 2002 .

[29]  Klaus Schneider,et al.  Extending synchronous languages for generating abstract real-time models , 2002, Proceedings 2002 Design, Automation and Test in Europe Conference and Exhibition.

[30]  Wang Yi,et al.  UPPAAL 4.0 , 2006, Third International Conference on the Quantitative Evaluation of Systems - (QEST'06).

[31]  Farn Wang,et al.  Efficient verification of timed automata with BDD-like data structures , 2004, International Journal on Software Tools for Technology Transfer.

[32]  Sergio Yovine,et al.  KRONOS: a verification tool for real-time systems , 1997, International Journal on Software Tools for Technology Transfer.

[33]  Timothy Bourke,et al.  Divide and recycle: types and compilation for a hybrid synchronous language , 2011, LCTES '11.