Section: New Results

Translation validation of Polychronous Equations with an iLTS Model-checker

Participants : Van-Chan Ngo, Jean-Pierre Talpin, Loïc Besnard.

Synchronous languages such as SIGNAL have been introduced and used successfully for the design and implementation of embedded and critical real-time systems. They rely on the fact that programs are modeled as data-flow equations or finite state machines that allow formal reasoning on designs. In consequence of that, a full toolset of synchronous languages provides formal transformation, automatic code generation, formal verification...

In general, the synchronous language's compiler takes several translations from the source program before generating the target code (e.g. C/C++ or Java code), thus we present an approach to verify these translations of synchronous language compiler. Our approach adopts the translation validation notion [49] . The idea of translation validation is the following: rather than proving in advance that the compiler always produces correct translations, each individual translation (e.g. every run of the compiler) is followed by a validation phase which verifies that the final output of this run correctly implements the input source program. This method avoids the drawback of freezing the potential improvements and/or developments of the compiler of the traditional compiler verification. For every small change in the compiler, the verification must be redoing the proof, that is an extremely complex task.

The validation phase is made automated which consists of: (i) Represent both the input source and output target SIGNAL programs as Polynomial Dynamical Systems - PDSs. (ii) Propose a refinement relation for the PDS models of the source and target programs. (iii) Use a syntactic simulation-based proof method which automatically verifies the refinement. This automated proof is done by extending the functionality of the model checker SIGALI in the Polychrony toolset