25 research outputs found

    Modular Compilation of a Synchronous Language

    Get PDF
    Synchronous languages rely on formal methods to ease the development of applications in an efficient and reusable way. Formal methods have been advocated as a means of increasing the reliability of systems, especially those which are safety or business critical. It is still difficult to develop automatic specification and verification tools due to limitations like state explosion, undecidability, etc... In this work, we design a new specification model based on a reactive synchronous approach. Then, we benefit from a formal framework well suited to perform compilation and formal validation of systems. In practice, we design and implement a special purpose language (LE) and its two semantics~: the ehavioral semantics helps us to define a program by the set of its behaviors and avoid ambiguousness in programs' interpretation; the execution equational semantics allows the modular compilation of programs into software and hardware targets (c code, vhdl code, fpga synthesis, observers). Our approach is pertinent considering the two main requirements of critical realistic applications~: the modular compilation allows us to deal with large systems, the model-based approach provides us with formal validation

    Algebraic Framework for Synchronous Language Semantics

    Get PDF
    International audienceIn this article, we study several relevant algebraic frameworks to define synchronous language semantics. Synchronous languages are quite dedicated to design critical embedded applications. Thus, verification and compilation is challenging and should rely on mathematical semantics. We study multi-valued algebras as foundation for semantics definition and we show that a 4-valued algebra with a bilattice structure is well suited to our concern. With this approach we can define semantics offering both the generation of models where verification techniques apply, and separated compilation means.Cet article étudie différents cadres algébriques adéquats pour définir les sémantiques des languages synchrones. Ces languages sont principalement dédiés à la conception de systèmes crtiques embarqués. Leur vérification et leur compilation sont des challenges importants et doivent s'appuyer sur des sémantiques bien fondées mathématiquement. Dans cet article, nous étudions les algèbres multi valuées et nous montrons qu'une algèbre particulière, 4-valuée avec une structure de bilattice répond à notre problème. Cette approche nous permet de définir une sémantique permettant l'application des techniques de vérification formelle et offrant la possibilité d'une compilation séparée

    Algebras and Synchronous Language Semantics

    Get PDF
    In this report, we study different multi-valued algebras allowing to formally specify synchronous language semanticsCe rapport étudie différentes algèbres multi-valuées permettant de donner un cadre formel à la définition des sémantiques des langages synchrones

    Compilation Modulaire d'un Langage Synchrone

    Get PDF
    National audienceIn this paper, we study the modular compilation of imperative synchronous programs. We rely on a formal framework well suited to perform compilation and formal validation of systems. In practice, we design and implement a special purpose language (LE) and its \execution equational semantics that allows the modular compilation of programs into software and hardware targets (C code, Vhdl code, FPGA synthesis, Verification tools). We show the correctness of this semantics, and we introduce a new algorithm to check program causality with respect to our modular approach. Relying in this formal approach, we defined a toolkit dedicated to the compilation and the verification of reactive applications.Dans cet article, nous étudions la compilation modulaire de programmes synchrones impératifs. Nous nous appuyons sur des méthodes formelles pour compiler et valider les applications spécifiées. Nous avons défini et implémenté un langage dédié (LE) et sa sémantique équationnelle qui permet la compilation modulaire des programmes vers différentes cibles logicielles et matérielles (code C, code Vhdl, synthétiseurs fpga, format d'entr\ée d'outils de vérification, ...). Nous montrons que cette sémantique est correcte et nous introduisons un algorithme pour vérifier la causalité qui respecte notre approche modulaire. En nous appuyant sur cette approche formelle, nous avons réalisé une boite à outils pour compiler et vérifier des applications réactives synchrones

    Études et développement de diagrammes de décision linéaires

    Get PDF
    National audienceModel verification, more commonly known as Model Checking, is a concept basedon an automatic formal verification approach of temporal properties on reactive systems.INRIA in collaboration with LEAT developed CLEM, a modeling and propertyverification tool, based on a state representation in finite automata generated automaticallyusing binary decisions diagrams. From an evolutionary point of view, thework carried out during this internship was to develop the library of linear decisionsdiagrams, we focused on the implementation of new reduction methods in cases of"Imply High" and "Imply Low" case. The objective of this work is to develop theverification part of CLEM by replacing the representation of the fundamental valuesusing binary decisions diagrams(BDDs) with linear decisions diagrams(LDDs) whichwill allow us to represent the states by integer values instead of signals which arenot comparable among themselves. This new library, once implemented on CLEM,will make checks of finer models and, we hope, will make it more powerful.La vérification de modèle, plus communément appelé Model Checking, est un conceptbasé sur une approche automatique de vérification formelles des propriétés temporellessur des systèmes réactifs. INRIA en collaboration avec le LEAT ont développéCLEM, un outil de modélisation et de vérification de propriétés, s’appuyant sur unereprésentation d’état en automates finis générés automatiquement et représentés pardes Diagrammes de Décisions Binaires. Dans une optique d’évolution, le travaileffectué durant ce stage a été de développer la bibliothèque de diagramme de décisionlinéaire, nous nous sommes concentrés sur l’inclusion de nouvelles méthodes deréduction dans les cas d’implication forte et faible. L’objectif de ce travail est de développerla partie vérification de CLEM en remplaçant la représentation actuelle desvaleurs fondamentales qui utilisent des diagrammes de décisions binaires(BDDs) parles diagrammes de décisions linéaires(LDDs) ce qui nous permettrait de représenterles états par des valeurs entières et non par des signaux non comparables entre eux.Cette nouvelle bibliothèque de LDDs, une fois implémentée sur CLEM, permettrade faire des vérifications de modèles plus fines et, potentiellement, le rendra plusperformant

    Une approche synchrone pour la reconnaissance d'activités

    Get PDF
    International audienceActivity Recognition aims at recognizing and understanding sequences of actions and movements of mobile objects (human beings, animals or artefacts), that follow the predefined model of an activity. We propose to describe activities as a series of actions, triggered and driven by environmental events. Due to the large range of application domains (surveillance, safety, health care...), we propose a generic approach to design activity recognition systems that interact continously with their environment and react to its stimuli at run-time. In our target applications, the data coming from sensors (video-cameras, etc.) are first processed to recognize and track objects and to detect low-level events. This low-level information is collected and transformed into higher level inputs to our activity recognition system. Such recognition systems must satisfy stringent requirements: dependability, real time, cost effectiveness , security and safety, correctness, completeness... To enforce most of these properties our approach is to base the configuration of the system as well as its execution on formal techniques. We chose the synchronous approach which provides formal bases to perform static analysis, verification and validation, but also direct implementation. Several synchronous languages such as Lustre, Esterel, Scade and Signal [2] have been defined to describe synchronous automata. These languages are for expert users. We propose a new user-oriented language , named ADeL (Activity Description Language) to express activities and to automatically generate recognition automata. This language is easier to understand and to use by non computer scientists (e.g., physicians) while relying on formal semantics

    A Model-checking Approach to Reduce Spiking Neural Networks

    Get PDF
    International audienceIn this paper we formalize Boolean Probabilistic Leaky Integrate and Fire Neural Networks as Discrete-Time Markov Chains using the language PRISM. In our models, the probability for neurons to emit spikes is driven by the difference between their membrane potential and their firing threshold. The potential value of each neuron is computed taking into account both the current input signals and the past potential value. Taking advantage of this modeling, we propose a novel algorithm which aims at reducing the number of neurons and synaptical connections of a given network. The reduction preserves the desired dynamical behavior of the network, which is formalized by means of temporal logic formulas and verified thanks to the PRISM model checker

    An Activity Description Language for Activity Recognition

    Get PDF
    International audienceActivity recognition aims at recognizing and understanding the movements, actions, and objectives of mobile objects. These objects can be humans, animals, or simple artefacts. Many important and critical applications such as surveillance or health care require some form of (human) activity recognition. Existing languages can be used to describe models of activities, but they are difficult to master by non computer scientists (ex: doctors). In this paper, we present a new language dedicated to end users, to describe their activities. We call it ADeL (Activity Description Language). This language is intended to be part of a complete recognition system. Such a system has to be real time, reactive, correct, and dependable. We choose the synchronous approach because it respects these characteristics, it ensures determinism and safe parallel composition, and it allows verification of systems using model-checking. Relying on the synchronous approach, we supply our language with two complementary formal semantics and we provide it with two formats: textual and graphical. This paper focuses on the description of the ADeL language

    Composition sure dans les intergiciels pour l'internet des objets

    Get PDF
    International audienceThe Internet of Things (IoT) connects sensors, actuators and autonomous objects interacting with each other. These devices are represented by web services. Web services composition often involves conflicts between systems having access to shared devices. In our component-based middleware, our solution allows managing access to shared devices, by generating specific constraint components which guarantee the respect of some predefined composition and adaptation constraints. IoT environments are dynamic; our solution ensures adaptation to its changes by using new generated constraint components and inhibitors to deal with the appearance and disappearance of devices/applications. The main contribution in this work is the definition of a new language DCL (Description Constraint Language) that helps to generate our constraint components by describing generic constraints that must be verified on accesses to shared devices. The whole approach and its associated tools rely on the synchronous paradigm, since it has a well-established formal foundation allowing automatic proofs, and interface with most model-checkers. We can then prove and guarantee a safe composition at runtime for our IoT applications.L'internet des objets connecte des capteurs, des actuateurs et des objets autonomes interagissant les uns avec les autres. Ces dispositifs sont représentés par des services web. La composition des services web doit souvent faire face à des des conflits entre les systèmes ayant accès à des dispositifs partagés. Dans notre intergiciel basé sur une approche composant, notre solution résoud le problème d'accès aux dispositifs partagés en générant des composants spécifiques qui garantissent le respect de contraintes prédéfinies d'adaptation et de composition. L'environnement de l'Internet des choses est dynamique; notre solution assure l'adaptation aux changements en utilisant de nouveaux composants de contrainte et des inhibiteurs qui permettent de prendre en compte l'apparence et la disparition des dispositifs et des applications. La principale contribution de ce travail est la définition du langage DCL (Description Contrainte Language) qui permet de générer automatiquement des composants de contrainte par description de contraintes génériques qui doivent être vérifiées sur les accès aux dispositifs partagés. Notre approche et les outils qui en découle repose sur le paradigme synchrone car c'est un modèle bien fondé qui permet de faire des preuves automatiques et s'interface avec la plupart des model checkers. Nous pouvons ainsi prouver et garantir une composition sure de nos applications dans le domaine de l'internet des choses

    Verification of Temporal Properties of Neuronal Archetypes Modeled as Synchronous Reactive Systems

    Get PDF
    International audienceThere exists many ways to connect two, three or more neu-rons together to form different graphs. We call archetypes only the graphs whose properties can be associated with specific classes of biologically relevant structures and behaviors. These archetypes are supposed to be the basis of typical instances of neuronal information processing. To model different representative archetypes and express their temporal properties, we use a synchronous programming language dedicated to reactive systems (Lustre). The properties are then automatically validated thanks to several model checkers supporting data types. The respective results are compared and depend on their underlying abstraction methods
    corecore