<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    <title>Project-Team:TEA</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="New Software and Platforms - SigCert: translation validation from Signal to C"/>
    <meta name="dc.title" content="New Software and Platforms - SigCert: translation validation from Signal to C"/>
    <meta name="dc.creator" content="Van-Chan Ngo"/>
    <meta name="dc.creator" content="Jean-Pierre Talpin"/>
    <meta name="dc.creator" content="Thierry Gautier"/>
    <meta name="dc.creator" content="Paul Le Guernic"/>
    <meta name="dc.creator" content="Loïc Besnard"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2015-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="TEA"/>
    <!-- Piwik -->
    <script type="text/javascript" src="/rapportsactivite/piwik.js"></script>
    <noscript><p><img src="//piwik.inria.fr/piwik.php?idsite=49" style="border:0;" alt="" /></p></noscript>
    <!-- End Piwik Code -->
  </head>
  <body>
    <div class="tdmdiv">
      <div class="logo">
        <a href="http://www.inria.fr">
          <img style="align:bottom; border:none" src="../static/img/icons/logo_INRIA-coul.jpg" alt="Inria"/>
        </a>
      </div>
      <div class="TdmEntry">
        <div class="tdmentete">
          <a href="uid0.html">Project-Team Tea</a>
        </div>
        <span>
          <a href="uid1.html">Members</a>
        </span>
      </div>
      <div class="TdmEntry">Overall Objectives<ul><li><a href="./uid3.html">Introduction</a></li><li><a href="./uid4.html">Context</a></li><li><a href="./uid5.html">Motivations</a></li><li><a href="./uid6.html">Challenges</a></li></ul></div>
      <div class="TdmEntry">Research Program<ul><li><a href="uid8.html&#10;&#9;&#9;  ">Previous Works</a></li><li><a href="uid11.html&#10;&#9;&#9;  ">Modelling Times</a></li><li><a href="uid19.html&#10;&#9;&#9;  ">Modelling Architectures</a></li><li><a href="uid25.html&#10;&#9;&#9;  ">Application to Scheduling Theory</a></li><li><a href="uid31.html&#10;&#9;&#9;  ">Virtual Prototyping</a></li></ul></div>
      <div class="TdmEntry">Application Domains<ul><li><a href="uid36.html&#10;&#9;&#9;  ">Automotive and Avionics</a></li><li><a href="uid37.html&#10;&#9;&#9;  ">Factory Automation</a></li></ul></div>
      <div class="TdmEntry">
        <a href="./uid39.html">Highlights of the Year</a>
      </div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid42.html&#10;&#9;&#9;  ">The Eclipse project POP</a></li><li><a href="uid46.html&#10;&#9;&#9;  ">The Polychrony toolset</a></li><li class="tdmActPage"><a href="uid59.html&#10;&#9;&#9;  ">SigCert: translation validation from Signal to C</a></li><li><a href="uid64.html&#10;&#9;&#9;  ">ADFG: Affine data-flow graphs scheduler synthesis under Eclipse</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid69.html&#10;&#9;&#9;  ">Polychronous automata</a></li><li><a href="uid71.html&#10;&#9;&#9;  ">Runtime verification and trace analysis</a></li><li><a href="uid72.html&#10;&#9;&#9;  ">Integration of Polychrony with QGen</a></li><li><a href="uid74.html&#10;&#9;&#9;  ">Formal semantics and model-based analysis of AADL specifications</a></li><li><a href="uid75.html&#10;&#9;&#9;  ">Refinement types for reactive system models</a></li><li><a href="uid77.html&#10;&#9;&#9;  ">Formal verification of timing aspects of cyber-physical systems using a contract theory</a></li></ul></div>
      <div class="TdmEntry">Bilateral Contracts and Grants with Industry<ul><li><a href="uid79.html&#10;&#9;&#9;  ">Bilateral Contracts with Industry</a></li><li><a href="uid87.html&#10;&#9;&#9;  ">Bilateral Grants with Industry</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid94.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid122.html&#10;&#9;&#9;  ">International Initiatives</a></li><li><a href="uid180.html&#10;&#9;&#9;  ">International Research Visitors</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid184.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid206.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentmajor" href="bibliography.html">Major publications</a>
          </li>
          <li>
            <a id="tdmbibentyear" href="bibliography.html#year">Publications of the year</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="main">
      <div class="mainentete">
        <div id="head_agauche">
          <small><a href="http://www.inria.fr">
	    
	    Inria
	  </a> | <a href="../index.html">
	    
	    Raweb 
	    2015</a> | <a href="http://www.inria.fr/en/teams/tea">Presentation of the Project-Team TEA</a> | <a href="https://team.inria.fr/TEA">TEA Web Site
	  </a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="tea.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="tea.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-tea-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../tea/tea.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-tea-epub.png"/>
                </a>
              </td>
            </tr>
            <tr>
              <td/>
              <td>PDF
</td>
              <td>e-Pub
</td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid46.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid64.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
      <div id="textepage">
        <!--DEBUT2 du corps du module-->
        <h2>Section: 
      New Software and Platforms</h2>
        <h3 class="titre3">SigCert: translation validation from Signal to C</h3>
        <p class="participants"><span class="part">Participants</span> :
	Van-Chan Ngo, Jean-Pierre Talpin, Thierry Gautier, Paul Le Guernic, Loïc Besnard.</p>
        <p>Translation validation (<i>Translation validation.</i> Pnueli A., Siegel M., and Singerman E. In Proceedings of TACAS'98, 1998.) (<i>Translation validation: From signal to c.</i> M. Siegel A. Pnueli and E. Singeman. In Correct Sytem Design Recent Insights and Advances, 2000.) is a technique that attempts to verify that program transformations preserve the program semantics. It is obvious to prove globally that the source program and its final compiled program have the same semantics. However, we believe that a better approach is to separate concerns and prove each analysis and transformation stage separately with respect to ad-hoc data-structures to carry the semantic information relevant to that phase.</p>
        <p>In the case of the Signal compiler <a href="./bibliography.html#tea-2015-bid2">[1]</a> , <a href="./bibliography.html#tea-2015-bid3">[7]</a> , the preservation of the semantics can be decomposed into the preservation of clock semantics at the <i>clock calculation</i> phase <a href="./bibliography.html#tea-2015-bid4">[15]</a> 
and that of data dependencies at the <i>static scheduling</i> phase<a href="./bibliography.html#tea-2015-bid5">[16]</a> , and, finally, value-equivalence of variables at the <i>code generation</i> phase<a href="./bibliography.html#tea-2015-bid6">[14]</a> .</p>
        <p class="notaparagraph"><b>Translation Validation for Clock Transformations in a Synchronous Compiler.</b>
The clock semantics of the source and transformed programs are formally represented as <i>clock models</i>. A clock model is a first-order logic formula that characterizes the presence/absence status of all signals in a Signal program at a given instant. Given two clock models, a <i>clock refinement</i> between them is defined which expresses the semantic preservation of clock semantics<a href="./bibliography.html#tea-2015-bid4">[15]</a> . A method to check the existence of clock refinement is defined as a satisfiability problem which can be automatically and efficiently proved by a SMT solver (<i>Satisfiability modulo theories: An appetizer.</i> L. de Moura and N. Bjorner. In Brazilian Symposium on Formal Methods, 2009.).</p>
        <p class="notaparagraph"><b>Precise Deadlock Detection for Polychronous Data-flow Specifications.</b>
Dependency graphs are a commonly used data structure to encode the streams of values in data-flow programs and play a central role in scheduling instructions during automated code generation from such specifications. We propose a precise and effective method that combines a structure of dependency graph and first order logic formulas to check whether multi-clocked data-flow specifications are deadlock-free before generating code from them. We represent the flow of values in the source programs by means of a dependency graph and attach first-order logic formulas to condition these dependencies. We use an SMT solver to effectively reason about the implied formulas and check deadlock freedom <a href="./bibliography.html#tea-2015-bid5">[16]</a> .</p>
        <p class="notaparagraph"><b>Implementation and Experiments</b>.
At a high level, our prototype tool <i>SigCert</i> (<a href="./bibliography.html#tea-2015-bid6">[14]</a> ) developed in OCaml could check the correctness of the compilation of Signal compiler w.r.t clock semantics, data dependence, and value-equivalence as given in Figure <a title="SigCert: translation validation from Signal to C" href="./uid59.html#uid63">3</a> . The individual modules designed in the context of this work are now being implemented and integrated in the open-source Polychrony toolset.</p>
        <div align="center" style="margin-top:10px">
          <a name="uid63">
            <!--...-->
          </a>
          <table title="" class="objectContainer">
            <caption align="bottom"><strong>Figure
	3. </strong>Our Integration within Polychrony Toolset</caption>
            <tr align="center">
              <td>
                <table>
                  <tr>
                    <td xmlns="" style="height:3px;" align="center">
                      <img xmlns="http://www.w3.org/1999/xhtml" style="width:384.2974pt" alt="IMG/sigcert.png" src="IMG/sigcert.png"/>
                    </td>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid46.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid64.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
    </div>
  </body>
</html>
