<?xml version="1.0" encoding="utf-8"?>
<raweb xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="" year="2019">
  <identification id="tea" isproject="true">
    <shortname>TEA</shortname>
    <projectName>Time, Events and Architectures</projectName>
    <theme-de-recherche>Embedded and Real-time Systems</theme-de-recherche>
    <domaine-de-recherche>Algorithmics, Programming, Software and Architecture</domaine-de-recherche>
    <urlTeam>https://team.inria.fr/TEA</urlTeam>
    <header_dates_team>Creation of the Team: 2014 January 01, updated into Project-Team: 2015 January 01</header_dates_team>
    <LeTypeProjet>Project-Team</LeTypeProjet>
    <keywordsSdN>
      <term>A1.2.5. - Internet of things</term>
      <term>A1.2.7. - Cyber-physical systems</term>
      <term>A1.5.2. - Communicating systems</term>
      <term>A2.1.1. - Semantics of programming languages</term>
      <term>A2.1.4. - Functional programming</term>
      <term>A2.1.6. - Concurrent programming</term>
      <term>A2.1.9. - Synchronous languages</term>
      <term>A2.1.10. - Domain-specific languages</term>
      <term>A2.2.1. - Static analysis</term>
      <term>A2.2.4. - Parallel architectures</term>
      <term>A2.3. - Embedded and cyber-physical systems</term>
      <term>A2.3.1. - Embedded systems</term>
      <term>A2.3.2. - Cyber-physical systems</term>
      <term>A2.3.3. - Real-time systems</term>
      <term>A2.4. - Formal method for verification, reliability, certification</term>
      <term>A2.4.1. - Analysis</term>
      <term>A2.4.2. - Model-checking</term>
      <term>A2.4.3. - Proofs</term>
      <term>A2.5. - Software engineering</term>
      <term>A2.5.1. - Software Architecture &amp; Design</term>
      <term>A2.5.2. - Component-based Design</term>
      <term>A4.4. - Security of equipment and software</term>
      <term>A4.5. - Formal methods for security</term>
      <term>A7.2. - Logic in Computer Science</term>
      <term>A7.2.3. - Interactive Theorem Proving</term>
      <term>A7.3. - Calculability and computability</term>
      <term>A8.1. - Discrete mathematics, combinatorics</term>
      <term>A8.3. - Geometry, Topology</term>
    </keywordsSdN>
    <keywordsSecteurs>
      <term>B5.1. - Factory of the future</term>
      <term>B6.1.1. - Software engineering</term>
      <term>B6.4. - Internet of things</term>
      <term>B6.6. - Embedded systems</term>
    </keywordsSecteurs>
    <UR name="Rennes"/>
  </identification>
  <team id="uid1">
    <person key="tea-2018-idp126368">
      <firstname>Jean-Pierre</firstname>
      <lastname>Talpin</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>Team leader, Inria, Senior Researcher</moreinfo>
      <hdr>oui</hdr>
    </person>
    <person key="avalon-2018-idp133584">
      <firstname>Thierry</firstname>
      <lastname>Gautier</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>Inria, Researcher</moreinfo>
    </person>
    <person key="tea-2018-idp139040">
      <firstname>Loic</firstname>
      <lastname>Besnard</lastname>
      <categoryPro>Technique</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>CNRS SED, Senior Engineer</moreinfo>
    </person>
    <person key="hycomes-2018-idp153392">
      <firstname>Armelle</firstname>
      <lastname>Mozziconacci</lastname>
      <categoryPro>Technique</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>CNRS, Project Assistant</moreinfo>
    </person>
    <person key="tea-2018-idp121328">
      <firstname>Rajesh Kumar</firstname>
      <lastname>Gupta</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>University of California San Diego, Inria Chair</moreinfo>
    </person>
    <person key="tea-2018-idp123840">
      <firstname>Shuvra</firstname>
      <lastname>Bhattacharyya</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>University of Maryland, Insa-Inria Chair</moreinfo>
    </person>
    <person key="tea-2018-idp129280">
      <firstname>Lucas</firstname>
      <lastname>Franceschino</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>Inria</moreinfo>
    </person>
    <person key="tea-2019-idp169968">
      <firstname>Stephane</firstname>
      <lastname>Kastenbaum</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>Mitsubishi Electric, from Oct 2019</moreinfo>
    </person>
    <person key="tea-2018-idp131728">
      <firstname>Simon</firstname>
      <lastname>Lunel</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>Inria, until Jan 2019</moreinfo>
    </person>
    <person key="tea-2018-idp134160">
      <firstname>Jean Joseph</firstname>
      <lastname>Marty</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>Inria</moreinfo>
    </person>
    <person key="tea-2018-idp136592">
      <firstname>Liangcong</firstname>
      <lastname>Zhang</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Rennes</research-centre>
      <moreinfo>China Scolarship Council</moreinfo>
    </person>
  </team>
  <presentation id="uid2">
    <bodyTitle>Overall Objectives</bodyTitle>
    <subsection id="uid3" level="1">
      <bodyTitle>Introduction</bodyTitle>
      <p>An embedded architecture is an artifact of heterogeneous constituents and at the crossing of several design viewpoints: software, embedded in hardware, interfaced with the physical world. Time takes different forms when observed from each of these viewpoints: continuous or discrete, event-based or time-triggered: modeling and programming formalisms that represent software, hardware and physics significantly alter this perception of time. Therefore, time reasoning in system design is usually isolated to a specific design problem: simulation, profiling, performance, scheduling, parallelization, simulation. The aim of project-team TEA is to define conceptually unified frameworks for reasoning on composition and integration in cyber-physical system design, and to put this reasoning to practice by revisiting analysis and synthesis issues in real-time system design with soundness and compositionality gained from formalization.</p>
    </subsection>
    <subsection id="uid4" level="1">
      <bodyTitle>Context</bodyTitle>
      <p>In the construction of complex systems, information technology (IT) has become a central force of revolutionary changes, driven by the exponential increase of computational power. In the field of telecommunication, IT provides the necessary basis for systems of networked distributed applications. In the field of control engineering, IT provides the necessary basis for embedded control applications. The combination of telecommunication and embedded systems into networked embedded systems opens up a new range of systems, capable of providing more intelligent functionalities, thanks to information and communication (ICT). Networked embedded systems have revolutionized several application domains: energy networks, industrial automation and transport systems.</p>
      <p>20th-century science and technology brought us effective methods and tools for designing both computational and physical systems, such as for instance Simulink and Matlab. But the design of cyber-physical systems (CPS) is much more than the union of those two fields. Traditionally, information scientists only have a hazy notion of requirements imposed by the physical environment of computers. Similarly, mechanical, civil, and chemical engineers view computers strictly as devices executing algorithms. CPS design is, to date, mostly executed in this ad-hoc manner, without sound, mathematically grounded, integrative methodology. A new science of CPS design will allow to create machines with complex dynamics and high control reliability, and apply to new industries and applications, such as IoT or edge devices, in a reliable and economically efficient way. Progress requires nothing less than the construction of a new science and technology foundation for CPS that is simultaneously physical and computational.</p>
    </subsection>
    <subsection id="uid5" level="1">
      <bodyTitle>Motivations</bodyTitle>
      <p>Beyond the buzzword, a CPS is an ubiquitous object of our everyday life. CPSs have evolved from individual independent units (e.g an ABS brake) to more and more integrated networks of units, which may be aggregated into larger components or sub-systems. For example, a transportation monitoring network aggregates monitored stations and trains through a large scale distributed system with relatively high latency. Each individual train is being controlled by a train control network, each car in the train has its own real-time bus to control embedded devices. More and more, CPSs are mixing real-time low latency technology with higher latency distributed computing technology.</p>
      <p>In the past 15 years, CPS development has moved towards Model Driven Engineering (MDE). With MDE methodology, first all requirements are gathered together with use cases, then a model of the system is built (sometimes several models) that satisfy the requirements. There are several modeling formalisms that have appeared in the past ten years with more or less success. The most successful are the <i>executable</i> models <footnote id="uid6" id-text="1"><i>Matlab/Simulink</i>, <ref xlink:href="https://fr.mathworks.com/products/simulink.html" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>fr.<allowbreak/>mathworks.<allowbreak/>com/<allowbreak/>products/<allowbreak/>simulink.<allowbreak/>html</ref></footnote>
<footnote id="uid7" id-text="2"><i>Ptolemy</i>, <ref xlink:href="http://ptolemy.eecs.berkeley.edu" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>ptolemy.<allowbreak/>eecs.<allowbreak/>berkeley.<allowbreak/>edu</ref></footnote>
<footnote id="uid8" id-text="3"><i>SysML</i>, <ref xlink:href="http://www.uml-sysml.org" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>uml-sysml.<allowbreak/>org</ref></footnote>,
i.e., models that can be simulated, exercised, tested and validated. This approach can be used for both software and hardware.</p>
      <p>A common feature found in CPSs is the ever presence of concurrency and parallelism in models. Large systems are increasingly mixing both types of concurrency. They are structured hierarchically and comprise multiple synchronous devices connected by buses or networks that communicate asynchronously. This led to the advent of so-called GALS (Globally Asynchronous, Locally Synchronous) models, or PALS (Physically Asynchronous, Logically Synchronous) systems, where reactive synchronous objects are communicating asynchronously. Still, these infrastructures, together with their programming models, share some fundamental concerns: parallelism and concurrency synchronization, determinism and functional correctness, scheduling optimality and calculation time predictability.</p>
      <p>Additionally, CPSs monitor and control real-world processes, the dynamics of which are usually governed by physical laws. These laws are expressed by physicists as mathematical equations and formulas. Discrete CPS models cannot ignore these dynamics, but whereas the equations express the continuous behavior usually using real numbers (irrational) variables, the models usually have to work with discrete time and approximate floating point variables.</p>
    </subsection>
    <subsection id="uid9" level="1">
      <bodyTitle>Challenges</bodyTitle>
      <p>A cyber-physical, or reactive, or embedded system is the integration of heterogeneous components originating from several design viewpoints: reactive software, some of which is embedded in hardware, interfaced with the physical environment through mechanical parts. Time takes different forms when observed from each of these viewpoints: it is discrete and event-based in software, discrete and time-triggered in hardware, continuous in mechanics or physics. Design of CPS often benefits from concepts of multiform and logical time(s) for their natural description. High-level formalisms used to model software, hardware and physics additionally alter this perception of time quite significantly.</p>
      <p>In model-based system design, time is usually abstracted to serve the purpose of one of many design tasks: verification, simulation, profiling, performance analysis, scheduling analysis, parallelization, distribution, or virtual prototyping. For example in non-real-time commodity software, timing abstraction such as number of instructions and algorithmic complexity is sufficient: software will run the same on different machines, except slower or faster. Alternatively, in cyber-physical systems, multiple recurring instances of meaningful events may create as many dedicated logical clocks, on which to ground modeling and design practices.</p>
      <p>Time abstraction increases efficiency in event-driven simulation or execution (i.e SystemC simulation models try to abstract time, from cycle-accurate to approximate-time, and to loosely-time), while attempting to retain functionality, but without any actual guarantee of valid accuracy (responsibility is left to the model designer). Functional determinism (a.k.a. conflict-freeness in Petri Nets, monotonicity in Kahn PNs, confluence in Milner's CCS, latency-insensitivity and elasticity in circuit design) allows for reducing to some amount the problem to that of many schedules of a single self-timed behavior, and time in many systems studies is partitioned into models of computation and communication (MoCCs). Multiple, multiform time(s) raises the question of combination, abstraction or refinement between distinct time bases. The question of combining continuous time with discrete logical time calls for proper discretization in simulation and implementation. While timed reasoning takes multiple forms, there is no unified foundation to reasoning about multi-form time in system design.</p>
      <p>The objective of project-team TEA is henceforth to define formal models for timed quantitative reasoning, composition, and integration in embedded system design. Formal time models and calculi should allow us to revisit common domain problems in real-time system design, such as time predictability and determinism, memory resources predictability, real-time scheduling, mixed-criticality and power management; yet from the perspective gained from inter-domain timed and quantitative abstraction or refinement relations. A regained focus on fundamentals will allow to deliver better tooled methodologies for virtual prototyping and integration of embedded architectures.</p>
    </subsection>
  </presentation>
  <fondements id="uid10">
    <bodyTitle>Research Program</bodyTitle>
    <subsection id="uid11" level="1">
      <bodyTitle>Previous Works</bodyTitle>
      <p>The challenges of team TEA support the claim that sound Cyber-Physical System design (including embedded, reactive, and concurrent systems altogether) should consider multi-form time models as a central aspect. In this aim, architectural specifications found in software engineering are a natural focal point to start from. Architecture descriptions organize a system model into manageable components, establish clear interfaces between them, collect domain-specific constraints and properties to help correct integration of components during system design. The definition of a formal design methodology to support heterogeneous or multi-form models of time in architecture descriptions demands the elaboration of sound mathematical foundations and the development of formal calculi and methods to instrument them.</p>
      <p>System design based on the “synchronous paradigm” has focused the attention of many academic and industrial actors on abstracting non-functional implementation details from system design. This elegant design abstraction focuses on the logic of interaction in reactive programs rather than their timed behavior, allowing to secure functional correctness while remaining an intuitive programming model for embedded systems. Yet, it corresponds to embedded technologies of single cores and synchronous buses from the 90s, and may hardly cover the semantic diversity of distribution, parallelism, heterogeneity, of cyber-physical systems found in 21st century Internet-connected, true-time<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup><mrow/><mrow><mi>T</mi><mi>M</mi></mrow></msup></math></formula>-synchronized clouds, of tomorrow's grids.</p>
      <p>By contrast with a synchronous hypothesis, yet from the same era, the polychronous MoCC is inherently capable of describing multi-clock abstractions of GALS systems. Polychrony is implemented in the data-flow specification language Signal, available in the Eclipse project POP <footnote id="uid12" id-text="4"><i>Polychrony on Polarsys</i>, <ref xlink:href="https://www.polarsys.org/projects/polarsys.pop" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>www.<allowbreak/>polarsys.<allowbreak/>org/<allowbreak/>projects/<allowbreak/>polarsys.<allowbreak/>pop</ref></footnote> and in the CCSL standard <footnote id="uid13" id-text="5"><i>Clock Constraints in UML/MARTE CCSL</i>. C. André, F. Mallet. RR-6540. Inria, 2008. <ref xlink:href="http://hal.inria.fr/inria-00280941" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>inria-00280941</ref></footnote> available from the TimeSquare project. Both provide tooled infrastructures to refine high-level specifications into real-time streaming applications or locally synchronous and globally asynchronous systems, through a series of model analysis, verification, and synthesis services. These tool-supported refinement and transformation techniques can assist the system engineer from the earliest design stages of requirement specification to the latest stages of synthesis, scheduling and deployment. These characteristics make polychrony much closer to the required semantic for compositional, refinement-based, architecture-driven, system design.</p>
      <p>While polychrony was a step ahead of the traditional synchronous hypothesis, CCSL is a leap forward from synchrony and polychrony. The essence of CCSL is “multi-form time” toward addressing all of the domain-specific physical, electronic and logical aspects of cyber-physical system design.</p>
    </subsection>
    <subsection id="uid14" level="1">
      <bodyTitle>Timed Modeling</bodyTitle>
      <p>To formalize timed semantics for system design, we shall rely on algebraic representations of time as clocks found in previous works and introduce a paradigm of "time system" (types that represent time) in a way reminiscent to CCSL. Just as a type system abstracts data carried along operations in a program, a time system abstracts the causal interaction of that program module or hardware element with its environment, its pre and post conditions, its assumptions and guarantees, either logical or numerical, discrete or continuous. Some fundamental concepts of the time systems we envision are present in the clock calculi found in data-flow synchronous languages like Signal or Lustre, yet bound to a particular model of timed concurrency.</p>
      <p>In particular, the principle of refinement type systems <footnote id="uid15" id-text="6"><i>Abstract Refinement Types</i>. N. Vazou, P. Rondon, and R. Jhala. European Symposium on Programming. Springer, 2013.</footnote>, is to associate information (data-types) inferred from programs and models with properties pertaining, for instance, to the algebraic domain on their value, or any algebraic property related to its computation: effect, memory usage, pre-post condition, value-range, cost, speed, time, temporal logic <footnote id="uid16" id-text="7"><i>LTL types FRP</i>. A. Jeffrey. Programming Languages meets Program Verification.</footnote>. Being grounded on type and domain theories, a time system should naturally be equipped with program analysis techniques based on type inference (for data-type inference) or abstract interpretation (for program properties inference) to help establish formal relations between heterogeneous component “types”. Just as a time calculus may formally abstract timed concurrent behaviors of system components, timed relations (abstraction and refinement) represent interaction among components.</p>
      <p>Scalability requires the use of assume-guarantee reasoning to allow modularity and to facilitate composition by behavioral sub-typing, in the spirit of the (static) contract-based formalism proposed by Passerone et al. <footnote id="uid17" id-text="8"><i>A contract-based formalism for the specification of heterogeneous systems</i>. L. Benvenistu, et al. FDL, 2008</footnote>. Verification problems encompassing heterogeneously timed specifications are common and of great variety: checking correctness between abstract (e.g. the synchronous hypothesis) and concrete time models (e.g. real-time architectures) relates to desynchronisation (from synchrony to asynchrony) and scheduling analysis (from synchronous data-flow to hardware). More generally, they can be perceived from heterogeneous timing viewpoints (e.g. mapping a synchronous-time software on a real-time middle-ware or hardware).</p>
      <p>This perspective demands capabilities to use abstraction and refinement mechanisms for time models (using simulation, refinement, bi-simulation, equivalence relations) but also to prove more specific properties (synchronization, determinism, endochrony). All this formalization effort will allow to effectively perform the tooled validation of common cross-domain properties (e.g. cost v.s. power v.s. performance v.s. software mapping) and tackle problems such as these integrating constraints of battery capacity, on-board CPU performance, available memory resources, software schedulability, to logical software correctness and plant controllability.</p>
    </subsection>
    <subsection id="uid18" level="1">
      <bodyTitle>Modeling Architectures</bodyTitle>
      <p>To address the formalization of such cross-domain case studies, modeling the architecture formally plays an essential role. An architectural model represents components in a distributed system as boxes with well-defined interfaces, connections between ports on component interfaces, and specifies component properties that can be used in analytical reasoning about the model. Several architectural modeling languages for embedded systems have emerged in recent years, including the SAE AADL <footnote id="uid19" id-text="9"><i>Architecture Analysis and Design Language</i>, AS-5506. SAE, 2004. <ref xlink:href="http://standards.sae.org/as5506b" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>standards.<allowbreak/>sae.<allowbreak/>org/<allowbreak/>as5506b</ref></footnote>, SysML <footnote id="uid20" id-text="10"><i>System modeling Language</i>. OMG, 2007. <ref xlink:href="http://www.omg.org/spec/SysML" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>omg.<allowbreak/>org/<allowbreak/>spec/<allowbreak/>SysML</ref></footnote>, UML MARTE <footnote id="uid21" id-text="11"><i>UML Profile for MARTE</i>. OMG, 2009. <ref xlink:href="http://www.omg.org/spec/MARTE" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>omg.<allowbreak/>org/<allowbreak/>spec/<allowbreak/>MARTE</ref></footnote>.</p>
      <p>In system design, an architectural specification serves several important purposes. First, it breaks down a system model into components of manageable size and complexity, to establish clear interfaces between components. In this way, complexity becomes manageable by hiding details that are not relevant at a given level of abstraction. Clear, formally defined, component interfaces allow us to avoid integration problems at the implementation phase. Connections between components, which specify how components interact with each other, help propagate the effects of a change in one component to the linked components.</p>
      <p>Most importantly, an architectural model is a repository to share knowledge about the system being designed. This knowledge can be represented as requirements, design artifacts, component implementations, held together by a structural backbone. Such a repository enables automatic generation of analytical models for different aspects of the system, such as timing, reliability, security, performance, energy, etc. Since all the models are generated from the same source, the consistency of assumptions w.r.t. guarantees, of abstractions w.r.t. refinements, used for different analyses becomes easier, and can be properly ensured in a design methodology based on formal verification and synthesis methods.</p>
      <p>Related works in this aim, and closer in spirit to our approach (to focus on modeling time) are domain-specific languages such as Prelude <footnote id="uid22" id-text="12"><i>The Prelude language</i>. LIFL and ONERA, 2012. <ref xlink:href="http://www.lifl.fr/~forget/prelude.html" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>lifl.<allowbreak/>fr/<allowbreak/>~forget/<allowbreak/>prelude.<allowbreak/>html</ref></footnote> to model the real-time characteristics of embedded software architectures. Conversely, standard architecture description languages could be based on algebraic modeling tools, such as interface theories with the ECDAR tool <footnote id="uid23" id-text="13"><i>PyECDAR, timed games for timed specifications</i>. Inria, 2013. <ref xlink:href="https://project.inria.fr/pyecdar" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>project.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>pyecdar</ref></footnote>.</p>
      <p>In project TEA, it takes form by the normalization of the AADL standard's formal semantics and the proposal of a time specification annex in the form of related standards, such as CCSL, to model concurrency, time and physical properties, and PSL, to model timed traces.</p>
    </subsection>
    <subsection id="uid24" level="1">
      <bodyTitle>Scheduling Theory</bodyTitle>
      <p>Based on sound formalization of time and CPS architectures, real-time scheduling theory provides tools for predicting the timing behavior of a CPS which consists of many interacting software and hardware components. Expressing parallelism among software components is a crucial aspect of the design process of a CPS. It allows for efficient partition and exploitation of available resources.</p>
      <p>The literature about real-time scheduling <footnote id="uid25" id-text="14"><i>A survey of hard real-time scheduling for multiprocessor systems</i>. R. I. Davis and A. Burns. <i>ACM Computing Survey</i> 43(4), 2011.</footnote> provides very mature schedulability tests regarding many scheduling strategies, preemptive or non-preemptive scheduling, uniprocessor or multiprocessor scheduling, etc. Scheduling of data-flow graphs has also been extensively studied in the past decades.</p>
      <p>A milestone in this prospect is the development of abstract affine scheduling techniques <footnote id="uid26" id-text="15"><i>Buffer minimization in EDF scheduling of data-flow graphs</i>. A. Bouakaz and J.-P. Talpin. LCTES, ACM, 2013.</footnote>. It consists, first, of approximating task communication patterns (e.g. between Safety-Critical Java threads) using cyclo-static data-flow graphs and affine functions. Then, it uses state of the art ILP techniques to find optimal schedules and to concretize them as real-time schedules in the program implementations <footnote id="uid27" id-text="16"><i>ADFG for the synthesis of hard real-time applications</i>. A. Bouakaz, J.-P. Talpin, J. Vitek. ACSD, IEEE, June 2012.</footnote> <footnote id="uid28" id-text="17"><i>Design of SCJ Level 1 Applications Using Affine Abstract Clocks</i>. A. Bouakaz and J.-P. Talpin. SCOPES, ACM, 2013.</footnote>.</p>
      <p>Abstract scheduling, or the use of abstraction and refinement techniques in scheduling borrowed to the theory of abstract interpretation <footnote id="uid29" id-text="18"><i>La vérification de programmes par interprétation abstraite</i>. P. Cousot. Séminaire au Collège de France, 2008.</footnote> is a promising development toward tooled methodologies to orchestrate thousands of heterogeneous hardware/software blocks on modern CPS architectures (just consider modern cars or aircrafts). It is an issue that simply defies the state of the art and known bounds of complexity theory in the field, and consequently requires a particular focus.</p>
      <p>To develop the underlying theory of this promising research topic, we first need to deepen the theoretical foundation to establish links between scheduling analysis and abstract interpretation. A theory of time systems would offer the ideal framework to pursue this development. It amounts to representing scheduling constraints, inferred from programs, as types or contract properties. It allows to formalize the target time model of the scheduler (the architecture, its middle-ware, its real-time system) and defines the basic concepts to verify assumptions made in one with promises offered by the other: contract verification or, in this case, synthesis.</p>
    </subsection>
    <subsection id="uid30" level="1">
      <bodyTitle>Verified programming for system design</bodyTitle>
      <p>The IoT is a network of devices that sense, actuate and change our immediate environment. Against this fundamental role of sensing and actuation, design of edge devices often considers actions and event timings to be primarily software implementation issues: programming models for IoT abstract even the most rudimentary information regarding timing, sensing and the effects of actuation. As a result, applications programming interfaces (API) for IoT allow wiring systems fast without any meaningful assertions about correctness, reliability or resilience.</p>
      <p>We make the case that the "API glue" must give way to a logical interface expressed using contracts or refinement types. Interfaces can be governed by a calculus – a refinement type calculus – to enable reasoning on time, sensing and actuation, in a way that provides both deep specification refinement, for mechanized verification of requirements, and multi-layered abstraction, to support compositionality and scalability, from one end of the system to the other.</p>
      <p>Our project seeks to elevate the “function as type” paradigm to that of “system as type”: to define a refinement type calculus based on concepts of contracts for reasoning on networked devices and integrate them as cyber-physical systems <footnote id="uid31" id-text="19">Refinement types for system design. Jean-Pierre Talpin. FDL’18 keynote.</footnote>. An invited paper <footnote id="uid32" id-text="20">Steps toward verified programming of embedded computing systems. Jean-Pierre Talpin, Jean-Joseph Marty, Deian Stefan, Shravan Nagarayan, Rajesh Gupta, DATE’18.</footnote> outlines our progress with respect to this aim and plans towards building a verified programming environment for networked IoT devices: we propose a type-driven approach to verifying and building safe and secure IoT applications.</p>
      <p>Accounting for such constrains in a more principled fashion demands reasoning about the composition of all the software and hardware components of the application. Our proposed framework takes a step in this direction by (1) using refinement types to make make physical constraints explicit and (2) imposing an event-driven programming discipline to simplify the reasoning of system-wide properties to that of an event queue. In taking this approach, our approach would make it possible for a developer to build a verified IoT application by ensuring that a well-typed program cannot violate the physical constraints of its architecture and environment.</p>
    </subsection>
  </fondements>
  <domaine id="uid33">
    <bodyTitle>Application Domains</bodyTitle>
    <subsection id="uid34" level="1">
      <bodyTitle>Automotive and Avionics</bodyTitle>
      <p>From our continuous collaboration with major academic and industrial partners through projects TOPCASED, OPENEMBEDD, SPACIFY, CESAR, OPEES, P and CORAIL, our experience has primarily focused on the aerospace domain. The topics of time and architecture of team TEA extend to both avionics and automotive. Yet, the research focuses on time in team TEA is central in any aspect of, cyber-physical, embedded system design in factory automation, automotive, music synthesis, signal processing, software radio, circuit and system on a chip design; many application domains which, should more collaborators join the team, would definitely be worth investigating.</p>
      <p>Multi-scale, multi-aspect time modeling, analysis and software synthesis will greatly contribute to architecture modeling in these domains, with applications to optimized (distributed, parallel, multi-core) code generation for avionics (project Corail with Thales avionics, section 8) as well as modeling standards, real-time simulation and virtual integration in automotive (project with Toyota ITC, section 8).</p>
      <p>Together with the importance of open-source software, one of these projects, the FUI Project P (section 8), demonstrated that a centralized model for system design could not just be a domain-specific programming language, such as discrete Simulink data-flows or a synchronous language. Synchronous languages implement a fixed model of time using logical clocks that are abstraction of time as sensed by software. They correspond to a fixed viewpoint in system design, and in a fixed hardware location in the system, which is not adequate to our purpose and must be extended.</p>
      <p>In project P, we first tried to define a centralized model for importing discrete-continuous models onto a simplified implementation of SIMULINK: P models. Certified code generators would then be developed from that format. Because this does not encompass all aspects being translated to P, the P meta-model is now being extended to architecture description concepts (of the AADL) in order to become better suited for the purpose of system design. Another example is the development of System modeler on top of SCADE, which uses the more model-engineering flavored formalism SysML to try to unambiguously represent architectures around SCADE modules.</p>
      <p>An abstract specification formalism, capable of representing time, timing relations, with which heterogeneous models can be abstracted, from which programs can be synthesized, naturally appears better suited for the purpose of virtual prototyping. RT-Builder, based on the data-flow language Signal and developed by TNI, was industrially proven and deployed for that purpose at Peugeot. It served to develop the virtual platform simulating all on-board electronics of PSA cars. This `hardware in the loop” simulator was used to test equipments supplied by other manufacturers for virtual prototyping of cars. In the advent of the related automotive standard, RT-Builder then became AUTOSAR-Builder.</p>
    </subsection>
    <subsection id="uid35" level="1">
      <bodyTitle>Factory Automation</bodyTitle>
      <p>In collaboration with Mitsubishi R&amp;D, we explore another application domain where time and domain heterogeneity are prime concerns: factory automation. In factory automation alone, a system is conventionally built from generic computing modules: PLCs (Programmable Logic Controllers), connected to the environment with actuators and detectors, and linked to a distributed network. Each individual, physically distributed, PLC module must be timely programmed to perform individually coherent actions and fulfill the global physical, chemical, safety, power efficiency, performance and latency requirements of the whole production chain. Factory chains are subject to global and heterogeneous (physical, electronic, functional) requirements whose enforcement must be orchestrated for all individual components.</p>
      <p>Model-based analysis in factory automation emerges from different scientific domains and focus on different CPS abstractions that interact in subtle ways: logic of PLC programs, real-time electro-mechanical processing, physical and chemical environments. This yields domain communication problems that render individual domain analysis useless. For instance, if one domain analysis (e.g. software) modifies a system model in a way that violates assumptions made by another domain (e.g. chemistry) then the detection of its violation may well be impossible to explain to either the software or chemistry experts. As a consequence, cross-domain analysis issues are discovered very late during system integration and lead to costly fixes. This is particularly prevalent in multi-tier industries, such as avionic, automotive, factories, where systems are prominently integrated from independently-developed parts.</p>
    </subsection>
  </domaine>
  <highlights id="uid36">
    <bodyTitle>Highlights of the Year</bodyTitle>
    <subsection id="uid37" level="1">
      <bodyTitle>Highlights of the Year</bodyTitle>
      <p>Loïc Besnard was promoted to the rank of Senior Engineer Exceptional Class by CNRS, acknowledging his remarkable career of research engineer as principal developer of Signal and Polychrony, as project manager and integrator with project teams EPATR (Signal), ESPRESSO (Polychrony), TEA (ADFG) and PACAP (Heptane).</p>
    </subsection>
  </highlights>
  <logiciels id="uid38">
    <bodyTitle>New Software and Platforms</bodyTitle>
    <subsection id="uid39" level="1">
      <bodyTitle>ADFG</bodyTitle>
      <p>
        <i>Affine data-flow graphs schedule synthesizer</i>
      </p>
      <p><span class="smallcap" align="left">Keywords:</span> Code generation - Scheduling - Static program analysis</p>
      <p><span class="smallcap" align="left">Functional Description:</span> ADFG is a synthesis tool of real-time system scheduling parameters: ADFG computes task periods and
buffer sizes of systems resulting in a trade-off between throughput maximization and buffer size minimization. ADFG synthesizes systems modeled by ultimately cyclo-static dataflow (UCSDF) graphs, an extension of the standard CSDF model.</p>
      <p>Knowing the WCET (Worst Case Execute Time) of the actors and their exchanges on the channels, ADFG tries to synthezise the scheduler of the application. ADFG offers several scheduling policies and can detect unschedulable systems. It ensures that the real scheduling does not cause overflows or underflows and tries to maximize the throughput (the processors utilization) while minimizing the storage space needed between the actors (i.e. the buffer sizes).</p>
      <p>Abstract affine scheduling is first applied on the dataflow graph, that consists only of periodic actors, to compute timeless scheduling constraints (e.g. relation between the speeds of two actors) and buffering parameters. Then, symbolic schedulability policies analysis (i.e., synthesis of timing and scheduling parameters of actors) is applied to produce the scheduller for the actors.</p>
      <p>ADFG, initially defined to synthesize real-time schedulers for SCJ/L1 applications, may be used for scheduling analysis of AADL programs.</p>
      <simplelist>
        <li id="uid40">
          <p noindent="true">Authors: Thierry Gautier, Jean-Pierre Talpin, Adnan Bouakaz, Alexandre Honorat and Loïc Besnard</p>
        </li>
        <li id="uid41">
          <p noindent="true">Contact: Loïc Besnard</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid42" level="1">
      <bodyTitle>POLYCHRONY</bodyTitle>
      <p><span class="smallcap" align="left">Keywords:</span> Code generation - AADL - Proof - Optimization - Multi-clock - GALS - Architecture - Cosimulation - Real time - Synchronous Language</p>
      <p><span class="smallcap" align="left">Functional Description:</span> Polychrony is an Open Source development environment for critical/embedded systems. It is based on Signal, a real-time polychronous data-flow language. It provides a unified model-driven environment to perform design exploration by using top-down and bottom-up design methodologies formally supported by design model transformations from specification to implementation and from synchrony to asynchrony. It can be included in heterogeneous design systems with various input formalisms and output languages. The Polychrony tool-set provides a formal framework to: validate a design at different levels, by the way of formal verification and/or simulation, refine descriptions in a top-down approach, abstract properties needed for black-box composition, compose heterogeneous components (bottom-up with COTS), generate executable code for various architectures. The Polychrony tool-set contains three main components and an experimental interface to GNU Compiler Collection (GCC):</p>
      <p>* The Signal toolbox, a batch compiler for the Signal language, and a structured API that provides a set of program transformations. Itcan be installed without other components and is distributed under GPL V2 license.</p>
      <p>* The Signal GUI, a Graphical User Interface to the Signal toolbox (editor + interactive access to compiling functionalities). It can be used either as a specific tool or as a graphical view under Eclipse. It has been transformed and restructured, in order to get a more up-to-date interface allowing multi-window manipulation of programs. It is distributed under GPL V2 license.</p>
      <p>* The POP Eclipse platform, a front-end to the Signal toolbox in the Eclipse environment. It is distributed under EPL license.</p>
      <simplelist>
        <li id="uid43">
          <p noindent="true">Participants: Loïc Besnard, Paul Le Guernic and Thierry Gautier</p>
        </li>
        <li id="uid44">
          <p noindent="true">Partners: CNRS - Inria</p>
        </li>
        <li id="uid45">
          <p noindent="true">Contact: Loïc Besnard</p>
        </li>
        <li id="uid46">
          <p noindent="true">URL: <ref xlink:href="https://www.polarsys.org/projects/polarsys.pop" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>www.<allowbreak/>polarsys.<allowbreak/>org/<allowbreak/>projects/<allowbreak/>polarsys.<allowbreak/>pop</ref></p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid47" level="1">
      <bodyTitle>Polychrony AADL2SIGNAL</bodyTitle>
      <p><span class="smallcap" align="left">Keywords:</span> Real-time application - Polychrone - Synchronous model - Polarsys - Polychrony - Signal - AADL - Eclipse - Meta model</p>
      <p><span class="smallcap" align="left">Functional Description:</span> This polychronous MoC has been used previously as semantic model for systems described in the core AADL standard.
The core AADL is extended with annexes, such as the Behavior Annex, which allows to specify more precisely architectural behaviors.
The translation from AADL specifications into the polychronous model should take into account
these behavior specifications, which are based on description of automata.</p>
      <p>For that purpose, the AADL state transition systems are translated as Signal automata
(a slight extension of the Signal language has been defined to support the model of polychronous automata).</p>
      <p>Once the AADL model of a system transformed into a Signal program, one can analyze the program using the Polychrony framework in order to check if timing, scheduling and logical requirements over the whole system are met.</p>
      <p>We have implemented the translation and experimented it using a concrete case study, which is the AADL modeling of an Adaptive Cruise Control (ACC) system,
a highly safety-critical system embedded in recent cars.</p>
      <simplelist>
        <li id="uid48">
          <p noindent="true">Participants: Huafeng Yu, Loïc Besnard, Paul Le Guernic, Thierry Gautier and Yue Ma</p>
        </li>
        <li id="uid49">
          <p noindent="true">Partner: CNRS</p>
        </li>
        <li id="uid50">
          <p noindent="true">Contact: Loïc Besnard</p>
        </li>
        <li id="uid51">
          <p noindent="true">URL: <ref xlink:href="http://www.inria.fr/equipes/tea" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>equipes/<allowbreak/>tea</ref></p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid52" level="1">
      <bodyTitle>POP</bodyTitle>
      <p>
        <i>Polychrony on Polarsys</i>
      </p>
      <p><span class="smallcap" align="left">Keywords:</span> Synchronous model - Model-driven engineering</p>
      <p><span class="smallcap" align="left">Functional Description:</span> The Eclipse project POP is a model-driven engineering front-end to our open-source toolset Polychrony. a major achievement of the ESPRESSO (and now TEA) project-team. The Eclipse project POP is a model-driven engineering front-end to our open-source toolset Polychrony. It was finalised in the frame of project OPEES, as a case study: by passing the POLARSYS qualification kit as a computer aided simulation and verification tool. This qualification was implemented by CS Toulouse in conformance with relevant generic (platform independent) qualification documents. Polychrony is now distributed by the Eclipse project POP on the platform of the POLARSYS industrial working group. Team TEA aims at continuing its dissemination to academic partners, as to its principles and features, and industrial partners, as to the services it can offer.</p>
      <p>Project POP is composed of the Polychrony tool set, under GPL license, and its Eclipse framework, under EPL license. SSME (Syntactic Signal-Meta under Eclipse), is the meta-model of the Signal language implemented with Eclipse/Ecore. It describes all syntactic elements specified in Signal Reference Manual<footnote id="uid53" id-text="21"><p><i>SIGNAL V4-Inria version: Reference Manual</i>. Besnard, L., Gautier, T. and Le Guernic, P.</p><p noindent="true"><ref xlink:href="http://www.irisa.fr/espresso/Polychrony" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>irisa.<allowbreak/>fr/<allowbreak/>espresso/<allowbreak/>Polychrony</ref>, 2010</p></footnote>: all Signal operators (e.g. arithmetic, clock synchronization), model (e.g. process frame, module), and construction (e.g. iteration, type declaration). The meta-model primarily aims at making the language and services of the Polychrony environment available to inter-operation and composition with other components (e.g. AADL, Simulink, GeneAuto, P) within an Eclipse-based development tool-chain. Polychrony now comprises the capability to directly import and export Ecore models instead of textual Signal programs, in order to facilitate interaction between components within such a tool-chain. The download site for project POP has opened in 2015 at https://www.polarsys.org/projects/polarsys.pop. It should be noted that the Eclipse Foundation does not host code under GPL license. So, the Signal toolbox useful to compile Signal code from Eclipse is hosted on our web server.</p>
      <simplelist>
        <li id="uid54">
          <p noindent="true">Participants: Jean-Pierre Talpin, Loïc Besnard, Paul Le Guernic and Thierry Gautier</p>
        </li>
        <li id="uid55">
          <p noindent="true">Contact: Loïc Besnard</p>
        </li>
        <li id="uid56">
          <p noindent="true">URL: <ref xlink:href="https://www.polarsys.org/projects/polarsys.pop" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>www.<allowbreak/>polarsys.<allowbreak/>org/<allowbreak/>projects/<allowbreak/>polarsys.<allowbreak/>pop</ref></p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid57" level="1">
      <bodyTitle>Sigali</bodyTitle>
      <p><span class="smallcap" align="left">Functional Description:</span> Sigali is a model-checking tool that operates on ILTS (Implicit Labeled Transition Systems, an equational representation of an automaton), an intermediate model for discrete event systems. It offers functionalities for verification of reactive systems and discrete controller synthesis.
The techniques used consist in manipulating the system of equations instead of the set of solutions, which avoids the enumeration of the state space. Each set of states is uniquely characterized by a predicate and the operations on sets can be equivalently performed on the associated predicates. Therefore, a wide spectrum of properties, such as liveness, invariance, reachability and attractivity, can be checked. Algorithms for the computation of predicates on states are also available. Sigali is connected with the Polychrony environment (Tea project-team) as well as the Matou environment (VERIMAG), thus allowing the modeling of reactive systems by means of Signal Specification or Mode Automata and the visualization of the synthesized controller by an interactive simulation of the controlled system.</p>
      <simplelist>
        <li id="uid58">
          <p noindent="true">Contact: Hervé Marchand</p>
        </li>
      </simplelist>
    </subsection>
  </logiciels>
  <resultats id="uid59">
    <bodyTitle>New Results</bodyTitle>
    <subsection id="uid60" level="1">
      <bodyTitle>ADFG: Affine data-flow graphs scheduler synthesis</bodyTitle>
      <participants>
        <person key="tea-2018-idp139040">
          <firstname>Loïc</firstname>
          <lastname>Besnard</lastname>
        </person>
        <person key="avalon-2018-idp133584">
          <firstname>Thierry</firstname>
          <lastname>Gautier</lastname>
        </person>
        <person key="tea-2018-idp126368">
          <firstname>Jean-Pierre</firstname>
          <lastname>Talpin</lastname>
        </person>
        <person key="tea-2018-idp123840">
          <firstname>Shuvra</firstname>
          <lastname>Bhattacharyya</lastname>
        </person>
        <person key="PASUSERID">
          <firstname>Alexandre</firstname>
          <lastname>Honorat</lastname>
        </person>
        <person key="PASUSERID">
          <firstname>Hai Nam</firstname>
          <lastname>Tran</lastname>
        </person>
      </participants>
      <p>ADFG (Affine DataFlow Graph) synthesizes scheduling parameters for real-time systems modeled as synchronous data flow (SDF), cyclo-static dataflow (CSDF), and ultimately cyclo-static dataflow (UCSDF) graphs. It aims at mitigating the trade-off between throughput maximization and total buffer size minimization. The synthesizer inputs are a graph which describes tasks by their Worst Case Execution Time (WCET), and directed buffers connecting tasks by their data production and consumption rates; the number of processors in the target system and the real-time scheduling synthesis algorithm to be used. The outputs are synthesized scheduling parameters such as tasks periods, offsets, processor bindings, priorities, buffer initial markings and buffer sizes. ADFG was originally implemented by Adnan Bouakaz <footnote id="uid61" id-text="22">Real-Time Scheduling of Dataflow Graphs. A. Bouakaz. Ph.D. Thesis, University of Rennes 1, 2013.</footnote>. It is now being collaboratively developed with team Tea, Hai Nam Tran (UBO) Alexandre Honorat (INSA) and Shuvra Bhattacharyya (UMD/INSA/Inria).</p>
      <p>ADFG is extended to support automated code generation of the computed
buffer sizes and scheduling parameters for dataflow applications that are
implemented in the Lightweight Dataflow Environment (LIDE) <footnote id="uid62" id-text="23">S. Lin,
Y. Liu, K. Lee, L. Li, W. Plishker, and S. S. Bhattacharyya. 2017. The DSPCAD
framework for modeling and synthesis of signal processing systems. Handbook of
Hardware/Software Codesign (2017), 1185–1219.</footnote>. LIDE is a flexible, lightweight
design environment that allows designers to experiment with dataflow-based
implementations directly. LIDE actors and buffers (FIFOs) can be initialized
with parameters, including buffer sizes. The usage of LIDE allows a systematic
way to instantiate dataflow graphs with the buffer size parameters computed by
ADFG.</p>
      <p>Actor models and scheduling algorithms in ADFG have been extended to
investigate the contention-aware scheduling problem on multi/many-core
architectures. The problem we tackled is that the scheduler synthesis for these
platforms must account for the non-negligible delay due to shared memory
accesses. We exploited the deterministic communications exposed in SDF graphs
to account for the contention and further optimize the synthesized schedule.
Two solutions are proposed and implemented in ADFG: contention-aware and
contention-free scheduling synthesis. In other words, we either take into
account the contention and synthesize a contention-aware schedule or find a one
that results in no contention.</p>
      <p>ADFG is extended to apply a transformation known as partial expansion graphs
(PEG). This transformation can be applied as a pre-processing stage to improve
the exploitation of data parallelism in SDF graphs on parallel platforms. In
contrast to the classical approaches of transforming SDF graphs into equivalent
homogeneous forms, which could lead to an exponential increase in the number of
actors and excessive communication overhead, PEG-based approaches allow the
designer to control the degree to which each actor is expanded. A PEG
algorithm that employs cyclo-static data flow techniques is developed in ADFG.
Compared to existing PEG-based approach, our solution requires neither buffer
managers nor split-join actors to coordinate data production and consumption
rates. This allows us to reduce the number of added actors and communication
overhead in the expanded graphs.</p>
    </subsection>
    <subsection id="uid63" level="1">
      <bodyTitle>Parallel Composition and Modular Verification of Computer Controlled Systems in Differential Dynamic Logic</bodyTitle>
      <participants>
        <person key="tea-2018-idp126368">
          <firstname>Jean-Pierre</firstname>
          <lastname>Talpin</lastname>
        </person>
        <person key="PASUSERID">
          <firstname>Benoit</firstname>
          <lastname>Boyer</lastname>
        </person>
        <person key="PASUSERID">
          <firstname>David</firstname>
          <lastname>Mentre</lastname>
        </person>
        <person key="tea-2018-idp131728">
          <firstname>Simon</firstname>
          <lastname>Lunel</lastname>
        </person>
        <person key="PASUSERID">
          <firstname>Stefan</firstname>
          <lastname>Mitsch</lastname>
        </person>
      </participants>
      <p>The primary goal of our project, in collaboration with Mitsubishi Electronics Research Centre Europe (MERCE), is to ensure correctness-by-design in realistic cyber-physical systems, i.e., systems that mix software and hardware in a physical environment, e.g., Mitsubishi factory automation lines or water-plant factory. To achieve that, we develop a verification methodology based on the decomposition of systems into components enhanced with compositional contract reasoning.</p>
      <p>The work of A. Platzer on Differential Dynamic Logic (<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>d</mi><mi>ℒ</mi></mrow></math></formula>) held our attention <footnote id="uid64" id-text="24"><i>Differential Dynamic Logic for Hybrid Systems</i>, André Platzer, <ref xlink:href="http://symbolaris.com/logic/dL.html" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>symbolaris.<allowbreak/>com/<allowbreak/>logic/<allowbreak/>dL.<allowbreak/>html</ref></footnote>. This formalism is built upon the Dynamic Logic of V. Pratt and augmented with the possibility of expressing Ordinary Differential Equations (ODEs). Combined with the ability of Dynamic Logic to specify and verify hybrid programs, <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>d</mi><mi>ℒ</mi></mrow></math></formula> is particularly adapted to model cyber-physical systems. The proof system associated with the logic is implemented into the theorem prover KeYmaera X. Aimed toward automation, it is a promising tool to spread formal methods in industry.</p>
      <p>Computer-Controlled Systems (CCS) are a subclass of hybrid systems where the periodic relation of control components to time is of paramount importance. Since they additionally are at the heart of many safety-critical devices, it is of primary importance to correctly model such systems and to ensure they function correctly according to safety requirements. Differential dynamic logic <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>d</mi><mi>ℒ</mi></mrow></math></formula> is a powerful logic to model hybrid systems and to prove their correctness. We contributed a compositional modeling and reasoning framework to <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>d</mi><mi>ℒ</mi></mrow></math></formula> that separates models into components with timing guarantees, such as reactivity of controllers and controllability of continuous dynamics. Components operate in parallel, with coarse-grained interleaving, periodic execution and communication. We present techniques to automate system safety proofs from isolated, modular, and possibly mechanized proofs of component properties parameterized with timing characteristics.
</p>
    </subsection>
    <subsection id="uid65" level="1">
      <bodyTitle>Multithreaded code generation for process networks</bodyTitle>
      <participants>
        <person key="tea-2018-idp139040">
          <firstname>Loïc</firstname>
          <lastname>Besnard</lastname>
        </person>
        <person key="avalon-2018-idp133584">
          <firstname>Thierry</firstname>
          <lastname>Gautier</lastname>
        </person>
      </participants>
      <p>As part of an in-depth comparison of process models, we have recently revisited the relation between the model of asynchronous dataflow represented by Kahn Process Networks (KPNs) and that of synchronous dataflow represented by the polychronous model of computation. In particular, we have precisely described in which conditions polychronous programs can be seen as KPNs. In this context, we have considered different cases of process networks, including so-called “polyendochronous processes”. Under some conditions expressed by clock equation systems, (networks of) processes exhibiting polyhierarchies of clocks are polyendochronous and, as compositions of endochronous processes, may be seen as KPNs.</p>
      <p>Based on this characterization, we have developed in the open-source Polychrony toolset a new strategy of code generation for such (polyendochronous) process networks. Typically, after the clock calculus, a program <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi>P</mi></math></formula> is organized as a composition of processes,
<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>P</mi><mo>=</mo><mo>(</mo><mo>|</mo><mspace width="4pt"/><mi>P</mi><mn>1</mn><mspace width="4pt"/><mo>|</mo><mspace width="4pt"/><mi>P</mi><mn>2</mn><mspace width="4pt"/><mo>|</mo><mspace width="4pt"/><mo>...</mo><mspace width="4pt"/><mo>|</mo><mspace width="4pt"/><mi>P</mi><mi>n</mi><mspace width="4pt"/><mo>|</mo><mo>)</mo></mrow></math></formula>, each one structured around a clock tree. When <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi>P</mi></math></formula> is characterized as polyendochronous, it contains generally clock constraints such as <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>𝐶𝑙𝑘</mi><mn>1</mn><mo>=</mo><mi>𝐶𝑙𝑘</mi><mn>2</mn></mrow></math></formula>, with <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>𝐶𝑙𝑘</mi><mn>1</mn></mrow></math></formula> being a clock in the subtree corresponding to <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>P</mi><mn>1</mn></mrow></math></formula> and <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>𝐶𝑙𝑘</mi><mn>2</mn></mrow></math></formula> a clock in the subtree corresponding to <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>P</mi><mn>2</mn></mrow></math></formula>.</p>
      <p>Such a constraint induces a synchronization between two parts (<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>P</mi><mn>1</mn></mrow></math></formula>, <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>P</mi><mn>2</mn></mrow></math></formula>) of the program when <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>𝐶𝑙𝑘</mi><mn>1</mn></mrow></math></formula> or <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>𝐶𝑙𝑘</mi><mn>2</mn></mrow></math></formula> occurs. The principle of the code generation for polyendochronous processes is based on the existing distributed code generation, but with the additional resynchronization of parts of the application induced by the constraints on clocks (<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>𝐶𝑙𝑘</mi><mn>1</mn></mrow></math></formula>, <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mi>𝐶𝑙𝑘</mi><mn>2</mn></mrow></math></formula>) not placed in the same clock trees. For distributed code generation, it is considered that each (clock) hierarchy will run on a specific processor. In this case, the purpose is mainly to partition the application, and the processors will be virtual ones.</p>
      <p>The code generation of each partition consists in the definition of several tasks: one task per cluster (a cluster being a subpart that may be executed as soon as its inputs are available, without any communication with the external world); one task per input/output of the partition; one task for the cluster of state variables; one task that manages the steps. Synchronization between these tasks is obtained by semaphores (one semaphore per task). This code generation technique for the class of networks called “polyendochronous processes” has been added in the Polychrony toolset (<ref xlink:href="http://polychrony.inria.fr" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>polychrony.<allowbreak/>inria.<allowbreak/>fr</ref>) and a paper describing the comparison of process models is currently in submission.</p>
    </subsection>
    <subsection id="uid66" level="1">
      <bodyTitle>Type theory for modular static analysis of system programs</bodyTitle>
      <participants>
        <person key="tea-2018-idp129280">
          <firstname>Lucas</firstname>
          <lastname>Franceschino</lastname>
        </person>
        <person key="tea-2018-idp126368">
          <firstname>Jean-Pierre</firstname>
          <lastname>Talpin</lastname>
        </person>
        <person key="PASUSERID">
          <firstname>David</firstname>
          <lastname>Pichardie</lastname>
        </person>
      </participants>
      <p>This Ph.D. project is about formal verification, with system programming applications in mind. Formal methods are essential for safety-critical software (i.e. transport and aeronautic industry). In the same time, more and more programming languages with a strong type system arise (such as Haskell, Rust, ML, Coq, F*, Idris...).</p>
      <p>Formal methods come in different flavors: type theory, abstract interpretation, refinement types. Each of these "flavors" are both
theoretical fields and are also being implemented concretely: <i>Astrée</i> ou <i>Verasco</i> for abstract interpretation, <i>Coq</i>, <i>Agda</i>, <i>F*</i> or <i>Idris</i> dependent types, and <i>Liquid Haskell</i> for refinement types.</p>
      <p>Our approach consists in positioning ourselves between type theory and abstract interpretation, and to leverage the power of both.
The main intuition behind this idea is that abstract interpretation, suffering from expressiveness, would bring <i>invariant inference</i> power, while strong type systems, requiring manual annotations and proofs, would bring <i>expressivity</i>.</p>
      <p>We formalized how one can enrich a weakest precondition calculus (WP) with an abstract interpreter. This work takes the shape of a WP calculus transformer: given a WP calculus, we generically construct a brand new WP calculus that produces easier (but sound, still) weakest preconditions, thanks to abstract interpretation.</p>
      <p>Concretely, our work is being implemented as an F* effect transformer that leverage Verasco capabilities, for a low-level subset of F*, namely Low*.</p>
    </subsection>
    <subsection id="uid67" level="1">
      <bodyTitle>Verified information flow of embedded programs</bodyTitle>
      <participants>
        <person key="tea-2018-idp134160">
          <firstname>Jean-Joseph</firstname>
          <lastname>Marty</lastname>
        </person>
        <person key="tea-2018-idp129280">
          <firstname>Lucas</firstname>
          <lastname>Franceschino</lastname>
        </person>
        <person key="PASUSERID">
          <firstname>Niki</firstname>
          <lastname>Vazou</lastname>
        </person>
        <person key="tea-2018-idp126368">
          <firstname>Jean-Pierre</firstname>
          <lastname>Talpin</lastname>
        </person>
      </participants>
      <p>This PhD project is about applying refinement types theory to verified programming of applications and modules of library operating systems, such as unikernels, for embedded devices of the Internet of Things (IoT): TinyOS, Riot, etc. Our topic has focused on developing a model of information flow control using labeled input-outputs (LIO) implemented using F<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo>☆</mo></math></formula>: project Lio<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo>☆</mo></math></formula>.</p>
      <p>As part of the development of Lio<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo>☆</mo></math></formula>, we implemented a library that, thanks to static verification, ensures the containment of information in relation to a parameterized policy for information flow control. In collaboration with Niki Vazou (IMDEA) and Lucas Franceschino we have formalized and developed an automatic method to prove non-interference in Meta<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo>☆</mo></math></formula>. Using the Kremlin code generator, programs using Lio<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo>☆</mo></math></formula> can be compiled into C code and run natively on embedded low-resource-constrained devices, without the need for additional runtime system.</p>
      <p>In parallel we continued our collaboration with the ProgSys team on a second, now discontinued, project: Gluco<formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo>☆</mo></math></formula>. The goal of this project was to evaluate the capabilities to use the F* programming language to program an entire system by taking into account its software, hardware and physical constraints using type refinements <footnote id="uid68" id-text="25">Towards verified programming of embedded devices. J.-P. Talpin, J.-J. Marty, S. Narayan, D. Stefan, R. Gupta. Design, Automation and Test in Europe (DATE'19). IEEE, 2019.</footnote>.
</p>
    </subsection>
  </resultats>
  <contrats id="uid69">
    <bodyTitle>Bilateral Contracts and Grants with Industry</bodyTitle>
    <subsection id="uid70" level="1">
      <bodyTitle>Bilateral Contracts with Industry</bodyTitle>
      <subsection id="idp4129232" level="2">
        <bodyTitle>
          <b>Inria – Mitsubishi Electric framework program (2018+)</b>
        </bodyTitle>
        <sanspuceslist>
          <li id="uid71">
            <p noindent="true">Title: Inria – Mitsubishi Electric framework program</p>
          </li>
          <li id="uid72">
            <p noindent="true">Inria principal investigator: Jean-Pierre Talpin</p>
          </li>
          <li id="uid73">
            <p noindent="true">International Partner: Mitsubishi Electric R&amp;D Europe (MERCE)</p>
          </li>
          <li id="uid74">
            <p noindent="true">Duration: 2018+</p>
          </li>
          <li id="uid75">
            <p noindent="true">Abstract:
Following up the fruitful collaboration of TEA with the formal methods group at MERCE, Inria and Mitsubishi Electric signed a center-wide collaboration agreement, which currently hosts projects with project-teams Sumo and Tea, as well as Tocata.</p>
          </li>
        </sanspuceslist>
      </subsection>
      <subsection id="idp4137632" level="2">
        <bodyTitle>
          <b>Mitsubishi Electric R&amp;D Europe (2019-2022)</b>
        </bodyTitle>
        <sanspuceslist>
          <li id="uid76">
            <p noindent="true">Title: A logical framework to verify requirements of hybrid system models</p>
          </li>
          <li id="uid77">
            <p noindent="true">Inria principal investigator: Jean-Pierre Talpin, Stéphane Kastenbaum</p>
          </li>
          <li id="uid78">
            <p noindent="true">International Partner: Mitsubishi Electric R&amp;D Europe</p>
          </li>
          <li id="uid79">
            <p noindent="true">Duration: 2015 - 2018</p>
          </li>
          <li id="uid80">
            <p noindent="true">Abstract:
The goal of this doctoral project is to verify and build cyber-physical systems (CPSs) with a correct-by-construction approach in order to validate system requirements against the two facets of the cyber and physical aspects of such designs. Our approach is based on components augmented with formal contracts that can be composed, abstracted or refined. It fosters the proof of system-level requirements by composing individual properties proved at component level. While semantically grounded, the tooling of this methodology should be usable by regular engineers (i.e. not proof theory specialists).</p>
          </li>
        </sanspuceslist>
      </subsection>
      <subsection id="idp4146144" level="2">
        <bodyTitle>
          <b>Mitsubishi Electric R&amp;D Europe (2015-2019)</b>
        </bodyTitle>
        <sanspuceslist>
          <li id="uid81">
            <p noindent="true">Title: Parallelism and modular proof in differential dynamic logic <ref xlink:href="#tea-2019-bid0" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/></p>
          </li>
          <li id="uid82">
            <p noindent="true">Inria principal investigator: Jean-Pierre Talpin, Simon Lunel</p>
          </li>
          <li id="uid83">
            <p noindent="true">International Partner: Mitsubishi Electric R&amp;D Europe</p>
          </li>
          <li id="uid84">
            <p noindent="true">Duration: 2015 - 2018</p>
          </li>
          <li id="uid85">
            <p noindent="true">Abstract:
The primary goal of this Ph.D. project is to ensure correctness-by-design in cyber-physical systems, i.e., systems that mix software and hardware in a physical environment, e.g., Mitsubishi factory automation lines. We develop a component-based approach in Differential Dynamic Logic allowing to reason about a wide variety of heterogeneous cyber-physical systems. Our work provides tools and methodology to design and prove a system modularly.</p>
          </li>
        </sanspuceslist>
      </subsection>
    </subsection>
  </contrats>
  <partenariat id="uid86">
    <bodyTitle>Partnerships and Cooperations</bodyTitle>
    <subsection id="uid87" level="1">
      <bodyTitle>International Initiatives</bodyTitle>
      <subsection id="uid88" level="2">
        <bodyTitle>Inria International Labs</bodyTitle>
        <p>
          <b>Sino-European Laboratory in Computer Science, Automation and Applied Mathematics</b>
        </p>
        <p noindent="true">Associate Team involved in the International Lab:</p>
        <subsection id="uid89" level="3">
          <bodyTitle>CONVEX</bodyTitle>
          <sanspuceslist>
            <li id="uid90">
              <p noindent="true">Title: Compositional Verification of Cyber-Physical Systems</p>
            </li>
            <li id="uid91">
              <p noindent="true">International Partner (Institution - Laboratory - Researcher):</p>
              <sanspuceslist>
                <li id="uid92">
                  <p noindent="true">CAS (China)
- State Key Laboratory of Computer Science - Naijun Zhan</p>
                </li>
              </sanspuceslist>
            </li>
            <li id="uid93">
              <p noindent="true">Start year: 2018</p>
            </li>
            <li id="uid94">
              <p noindent="true">See also: <ref xlink:href="http://convex.irisa.fr" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>convex.<allowbreak/>irisa.<allowbreak/>fr</ref></p>
            </li>
            <li id="uid95">
              <p noindent="true">Formal modeling and verification methods have successfully improved software safety and security in vast application domains in transportation, production and energy. However, formal methods are labor-intensive and require highly trained software developers. Challenges facing formal methods stem from rapid evolution of hardware platforms, the increasing amount and cost of software infrastructures, and from the interaction between software, hardware and physics in networked cyber-physical systems.</p>
              <p>Automation and expressivity of formal verification tools must be improved not only to scale functional verification to very large software stacks, but also verify non-functional properties from models of hardware (time, energy) and physics (domain). Abstraction, compositionality and refinement are essential properties to provide the necessary scalability to tackle the complexity of system design with methods able to scale heterogeneous, concurrent, networked, timed, discrete and continuous models of cyber-physical systems.</p>
              <p>Project CONVEX wants to define a CPS architecture design methodology that takes advantage of existing time and concurrency modeling standards (MARTE, AADL, Ptolemy, Matlab), yet focuses on interfacing heterogeneous and exogenous models using simple, mathematically-defined structures, to achieve the single goal of verified integration of CPS components.</p>
            </li>
          </sanspuceslist>
          <p>
            <b>Inria@SiliconValley</b>
          </p>
          <p noindent="true">Associate Team involved in the International Lab:</p>
        </subsection>
        <subsection id="uid96" level="3">
          <bodyTitle>
            <ref xlink:href="http://www.irisa.fr/prive/talpin/composite" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Composite</ref>
          </bodyTitle>
          <sanspuceslist>
            <li id="uid97">
              <p noindent="true">Title: Compositional System Integration</p>
            </li>
            <li id="uid98">
              <p noindent="true">International Partners (Institution - Laboratory - Researcher):</p>
              <sanspuceslist>
                <li id="uid99">
                  <p noindent="true">University of California, San Diego (United States)
- Microelectronic Embedded Systems Laboratory - Rajesh Gupta</p>
                </li>
              </sanspuceslist>
            </li>
            <li id="uid100">
              <p noindent="true">Start year: 2017</p>
            </li>
            <li id="uid101">
              <p noindent="true">See also: <ref xlink:href="http://www.irisa.fr/prive/talpin/composite" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>irisa.<allowbreak/>fr/<allowbreak/>prive/<allowbreak/>talpin/<allowbreak/>composite</ref></p>
            </li>
            <li id="uid102">
              <p noindent="true">Most applications that run somewhere on the internet are not optimized to do so. They execute on general purpose operating systems or on containers (virtual machines) that are built with the most conservative assumptions about their environment. While an application is specific, a large part of the system it runs on is unused, which is both a cost (to store and execute) and a security risk (many entry points).</p>
              <p>A unikernel, on the contrary, is a system program object that only contains the necessary the operating system services it needs for execution. A unikernel is build from the composition of a program, developed using high-level programming language, with modules of a library operating system (libOS), to execute directly on an hypervisor. A unikernel can boot in milliseconds to serve a request and shut down, demanding minimal energy and resources, offering stealthiest exposure time and surface to attacks, making them the ideal platforms to deploy on sensor networks, networks of embedded devices, smart grids and clouds.</p>
              <p>The goal of COMPOSITE is to develop the mathematical foundations for sound and efficient composition in system programming: analysis, verification and optimization technique for modular and compositional hardware-system-software integration of unikernels. We intend to further this development with the prospect of an end-to-end co-design methodology to synthesize lean and stealth networked embedded devices.</p>
            </li>
          </sanspuceslist>
        </subsection>
        <subsection id="uid103" level="3">
          <bodyTitle>Inria International Chairs</bodyTitle>
          <sanspuceslist>
            <li id="uid104">
              <p noindent="true">
                <b> IIC GUPTA Rajesh</b>
              </p>
            </li>
            <li id="uid105">
              <p noindent="true">Title: End-to-end system co-design</p>
            </li>
            <li id="uid106">
              <p noindent="true">International Partner (Institution - Laboratory - Researcher):</p>
              <sanspuceslist>
                <li id="uid107">
                  <p noindent="true">University of California, San Diego (United States) - Rajesh Gupta</p>
                </li>
              </sanspuceslist>
            </li>
            <li id="uid108">
              <p noindent="true">Duration: 2017 - 2021</p>
            </li>
            <li id="uid109">
              <p noindent="true">Start year: 2017</p>
            </li>
          </sanspuceslist>
        </subsection>
        <subsection id="uid110" level="3">
          <bodyTitle>Insa-Inria International Chair</bodyTitle>
          <sanspuceslist>
            <li id="uid111">
              <p noindent="true">
                <b>Shuvra Bhattacharyya</b>
              </p>
            </li>
            <li id="uid112">
              <p noindent="true">Title: System design methodologies for real-time signal and information processing</p>
            </li>
            <li id="uid113">
              <p noindent="true">International Partner (Institution - Laboratory - Researcher):</p>
              <sanspuceslist>
                <li id="uid114">
                  <p noindent="true">University of Maryland (United States) - Shuvra Bhattacharyya</p>
                </li>
              </sanspuceslist>
            </li>
            <li id="uid115">
              <p noindent="true">Duration: 2018 - 2021</p>
            </li>
            <li id="uid116">
              <p noindent="true">Start year: 2017</p>
            </li>
          </sanspuceslist>
        </subsection>
      </subsection>
    </subsection>
    <subsection id="uid117" level="1">
      <bodyTitle>International Research Visitors</bodyTitle>
      <subsection id="uid118" level="2">
        <bodyTitle>Visits of International Scientists</bodyTitle>
        <simplelist>
          <li id="uid119">
            <p noindent="true">Shuvra Bhattacharyya (UMD) visited project-team TEA and IETR in the context of his Insa-Inria Chair in May, July and December. He gave numerous talks and organized a workshop for the preparation of a European project proposal.</p>
          </li>
          <li id="uid120">
            <p noindent="true">Rajesh Gupta (UCSD) visited project-team TEA in the context of his Inria Chair in July and gave a seminar entitled: programming human spaces.</p>
          </li>
          <li id="uid121">
            <p noindent="true">Niki Vazou (IMDEA) visited project-team TEA in May and gave a presentation on her POPL'20 paper: “Liquidate your assets: reasoning about resource usage in Liquid Haskell”.</p>
          </li>
          <li id="uid122">
            <p noindent="true">Yamine Ait Ameur (IRIT) visited project-team TEA in January on the occasion of Simon Lunel's Thesis defense.</p>
          </li>
          <li id="uid123">
            <p noindent="true">Naijun Zhan (ISCAS) visited project-team TEA in July, in the context of associate-project CONVEX.</p>
          </li>
          <li id="uid124">
            <p noindent="true">Delegates of the Sheng Yuan Honors College (BUAA) visited Inria-Irisa and Ecole Normale Supérieur de Rennes for the prospect of initiating an exchange program for graduate students, which will start in 2020.</p>
          </li>
          <li id="uid125">
            <p noindent="true">Zhang Bojun and Wang Zikai (BUAA) visited project-team TEA in July for an internship on verified modeling of blockchain protocols in Coq.</p>
          </li>
          <li id="uid126">
            <p noindent="true">Shenghao Yuan (NUAA) visited project-team TEA in July, in the context of associate-team CONVEX, and gave a presentation of the verified mini-Signal code generator developed at Nanhang University.</p>
          </li>
        </simplelist>
      </subsection>
      <subsection id="uid127" level="2">
        <bodyTitle>Visits to International Teams</bodyTitle>
        <p>Jean-Pierre Talpin visited UC San Diego in March, in the context of the associate-team Composite, and visited ISCAS, Beijing, in May and October, in the context of the associate-team CONVEX.</p>
      </subsection>
    </subsection>
  </partenariat>
  <diffusion id="uid128">
    <bodyTitle>Dissemination</bodyTitle>
    <subsection id="uid129" level="1">
      <bodyTitle>Promoting Scientific Activities</bodyTitle>
      <subsection id="uid130" level="2">
        <bodyTitle>Scientific Events Selection</bodyTitle>
        <p>Jean-Pierre Talpin served in the program committee of the ACM LCTES'19, ACM SAC'19 and SCOPES'19 conferences.</p>
        <p>Thierry Gautier reviewed articles for <i>Journal of Systems Architecture</i> (Elsevier).</p>
      </subsection>
      <subsection id="uid131" level="2">
        <bodyTitle>Journal</bodyTitle>
        <p>Jean-Pierre Talpin is Associate Editor with the ACM Transactions for Embedded Computing Systems (TECS).</p>
        <p>Thierry Gautier reviewed articles for <i>IEEE Access</i> and <i>Science of Computer Programming</i>.</p>
      </subsection>
      <subsection id="uid132" level="2">
        <bodyTitle>Invited Talks</bodyTitle>
        <p>Jean-Pierre Talpin gave an invited presentation entitled “Towards verified programming of embedded devices” at DATE'19, Florence.</p>
      </subsection>
    </subsection>
    <subsection id="uid133" level="1">
      <bodyTitle>Teaching - Supervision - Juries</bodyTitle>
      <p>Jean-Pierre Talpin gave a one week graduate-level course at the Sheng Yuan Honors College, BUAA, entitled: “introduction to program verification”.</p>
      <p>Jean-Pierre Talpin co-supervises the PhD Theses of Stéphane Kastenbaum, Simon Lunel, Liangcong Zhang, Jean-Joseph Marty and Lucas Franceschino</p>
      <p>Thierry Gautier served as external assessor for professor position application at Nankai University (China).</p>
    </subsection>
  </diffusion>
  <biblio id="bibliography" html="bibliography" numero="10" titre="Bibliography">
    
    <biblStruct id="tea-2019-bid0" type="phdthesis" rend="year" n="cite:lunel:tel-02102687">
      <identifiant type="hal" value="tel-02102687"/>
      <monogr>
        <title level="m">Parallelism and modular proof in differential dynamic logic</title>
        <author>
          <persName key="tea-2018-idp131728">
            <foreName>Simon</foreName>
            <surname>Lunel</surname>
            <initial>S.</initial>
          </persName>
        </author>
        <imprint>
          <publisher>
            <orgName type="school">Université Rennes 1</orgName>
          </publisher>
          <dateStruct>
            <month>January</month>
            <year>2019</year>
          </dateStruct>
          <ref xlink:href="https://tel.archives-ouvertes.fr/tel-02102687" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>tel.<allowbreak/>archives-ouvertes.<allowbreak/>fr/<allowbreak/>tel-02102687</ref>
        </imprint>
      </monogr>
      <note type="typdoc">Theses</note>
    </biblStruct>
    
    <biblStruct id="tea-2019-bid1" type="article" rend="year" n="cite:gautier:hal-01411257">
      <identifiant type="doi" value="10.1007/s11704-017-6134-5"/>
      <identifiant type="hal" value="hal-01411257"/>
      <analytic>
        <title level="a">Polychronous automata and their use for formal validation of AADL models</title>
        <author>
          <persName key="avalon-2018-idp133584">
            <foreName>Thierry</foreName>
            <surname>Gautier</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>Clément</foreName>
            <surname>Guy</surname>
            <initial>C.</initial>
          </persName>
          <persName key="tea-2018-idp143984">
            <foreName>Alexandre</foreName>
            <surname>Honorat</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>Paul</foreName>
            <surname>Le Guernic</surname>
            <initial>P.</initial>
          </persName>
          <persName key="tea-2018-idp126368">
            <foreName>Jean-Pierre</foreName>
            <surname>Talpin</surname>
            <initial>J.-P.</initial>
          </persName>
          <persName key="tea-2018-idp139040">
            <foreName>Loïc</foreName>
            <surname>Besnard</surname>
            <initial>L.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-editorial-board="yes" x-international-audience="yes" id="rid02167">
        <idno type="issn">2095-2228</idno>
        <title level="j">Frontiers of Computer Science</title>
        <imprint>
          <biblScope type="volume">13</biblScope>
          <biblScope type="number">4</biblScope>
          <dateStruct>
            <month>August</month>
            <year>2019</year>
          </dateStruct>
          <biblScope type="pages">677-697</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01411257" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01411257</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="tea-2019-bid3" type="inproceedings" rend="year" n="cite:lunel:hal-02193642">
      <identifiant type="hal" value="hal-02193642"/>
      <analytic>
        <title level="a">Parallel Composition and Modular Verification of Computer Controlled Systems in Differential Dynamic Logic</title>
        <author>
          <persName key="tea-2018-idp131728">
            <foreName>Simon</foreName>
            <surname>Lunel</surname>
            <initial>S.</initial>
          </persName>
          <persName>
            <foreName>Stefan</foreName>
            <surname>Mitsch</surname>
            <initial>S.</initial>
          </persName>
          <persName>
            <foreName>Benoît</foreName>
            <surname>Boyer</surname>
            <initial>B.</initial>
          </persName>
          <persName key="tea-2018-idp126368">
            <foreName>Jean-Pierre</foreName>
            <surname>Talpin</surname>
            <initial>J.-P.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">FM 2019 - 23rd International Symposium on Formal Methods</title>
        <loc>Porto, Portugal</loc>
        <imprint>
          <dateStruct>
            <month>October</month>
            <year>2019</year>
          </dateStruct>
          <biblScope type="pages">1-22</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-02193642" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-02193642</ref>
        </imprint>
        <meeting id="cid314773">
          <title>International Symposium on Formal Methods</title>
          <num>23</num>
          <abbr type="sigle">FM</abbr>
        </meeting>
      </monogr>
      <note type="bnote"><ref xlink:href="https://arxiv.org/abs/1907.02881" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>arxiv.<allowbreak/>org/<allowbreak/>abs/<allowbreak/>1907.<allowbreak/>02881</ref> - Long version of an article accepted to the conference FM'19</note>
    </biblStruct>
    
    <biblStruct id="tea-2019-bid2" type="inproceedings" rend="year" n="cite:talpin:hal-02193635">
      <identifiant type="doi" value="10.23919/DATE.2019.8715067"/>
      <identifiant type="hal" value="hal-02193635"/>
      <analytic>
        <title level="a">Towards verified programming of embedded devices</title>
        <author>
          <persName key="tea-2018-idp126368">
            <foreName>Jean-Pierre</foreName>
            <surname>Talpin</surname>
            <initial>J.-P.</initial>
          </persName>
          <persName key="tea-2018-idp134160">
            <foreName>Jean-Joseph</foreName>
            <surname>Marty</surname>
            <initial>J.-J.</initial>
          </persName>
          <persName key="tea-2018-idp148912">
            <foreName>Shravan</foreName>
            <surname>Narayan</surname>
            <initial>S.</initial>
          </persName>
          <persName key="tea-2018-idp146448">
            <foreName>Deian</foreName>
            <surname>Stefan</surname>
            <initial>D.</initial>
          </persName>
          <persName key="tea-2018-idp121328">
            <foreName>Rajesh</foreName>
            <surname>Gupta</surname>
            <initial>R.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="yes" x-editorial-board="yes">
        <title level="m">DATE 2019 - 22nd IEEE/ACM Design, Automation and Test in Europe</title>
        <loc>Florence, Italy</loc>
        <imprint>
          <publisher>
            <orgName>IEEE</orgName>
          </publisher>
          <dateStruct>
            <month>March</month>
            <year>2019</year>
          </dateStruct>
          <biblScope type="pages">1445-1450</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-02193635" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-02193635</ref>
        </imprint>
        <meeting id="cid58552">
          <title>Design, Automation, and Test in Europe</title>
          <num>22</num>
          <abbr type="sigle">DATE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="tea-2019-bid5" type="inproceedings" rend="year" n="cite:tran:hal-02193639">
      <identifiant type="doi" value="10.1109/ICECCS.2019.00020"/>
      <identifiant type="hal" value="hal-02193639"/>
      <analytic>
        <title level="a">Efficient Contention-Aware Scheduling of SDF Graphs on Shared Multi-bank Memory</title>
        <author>
          <persName key="tea-2018-idp141504">
            <foreName>Hai Nam</foreName>
            <surname>Tran</surname>
            <initial>H. N.</initial>
          </persName>
          <persName key="tea-2018-idp143984">
            <foreName>Alexandre</foreName>
            <surname>Honorat</surname>
            <initial>A.</initial>
          </persName>
          <persName key="tea-2018-idp126368">
            <foreName>Jean-Pierre</foreName>
            <surname>Talpin</surname>
            <initial>J.-P.</initial>
          </persName>
          <persName key="avalon-2018-idp133584">
            <foreName>Thierry</foreName>
            <surname>Gautier</surname>
            <initial>T.</initial>
          </persName>
          <persName key="tea-2018-idp139040">
            <foreName>Loïc</foreName>
            <surname>Besnard</surname>
            <initial>L.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">ICECCS 2019 - 24th International Conference on Engineering of Complex Computer Systems</title>
        <loc>Hong Kong, China</loc>
        <imprint>
          <publisher>
            <orgName>IEEE</orgName>
          </publisher>
          <dateStruct>
            <month>November</month>
            <year>2019</year>
          </dateStruct>
          <biblScope type="pages">114-123</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-02193639" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-02193639</ref>
        </imprint>
        <meeting id="cid83404">
          <title>IEEE International Conference on Engineering of Complex Computer Systems</title>
          <num>24</num>
          <abbr type="sigle">ICECCS</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="tea-2019-bid4" type="inproceedings" rend="year" n="cite:zhan:hal-02193662">
      <identifiant type="doi" value="10.1007/978-3-030-31038-7_6"/>
      <identifiant type="hal" value="hal-02193662"/>
      <analytic>
        <title level="a">Unified Graphical Co-Modelling of Cyber-Physical Systems using AADL and Simulink/Stateflow</title>
        <author>
          <persName>
            <foreName>Haolan</foreName>
            <surname>Zhan</surname>
            <initial>H.</initial>
          </persName>
          <persName>
            <foreName>Qianqian</foreName>
            <surname>Lin</surname>
            <initial>Q.</initial>
          </persName>
          <persName>
            <foreName>Shuling</foreName>
            <surname>Wang</surname>
            <initial>S.</initial>
          </persName>
          <persName key="tea-2018-idp126368">
            <foreName>Jean-Pierre</foreName>
            <surname>Talpin</surname>
            <initial>J.-P.</initial>
          </persName>
          <persName>
            <foreName>Xiong</foreName>
            <surname>Xu</surname>
            <initial>X.</initial>
          </persName>
          <persName>
            <foreName>Naijun</foreName>
            <surname>Zhan</surname>
            <initial>N.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="yes" x-editorial-board="yes">
        <title level="m">UTP 2019 - 7th International Symposium on Unifying Theories of Programming</title>
        <loc>Porto, Portugal</loc>
        <imprint>
          <dateStruct>
            <month>October</month>
            <year>2019</year>
          </dateStruct>
          <biblScope type="pages">1-20</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-02193662" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-02193662</ref>
        </imprint>
        <meeting id="cid625237">
          <title>International Symposium on Unifying Theories of Programming</title>
          <num>7</num>
          <abbr type="sigle">UTP</abbr>
        </meeting>
      </monogr>
    </biblStruct>
  </biblio>
</raweb>
