663 research outputs found

    Cercles vicieux, mathématiques et formalisations logiques

    Get PDF
    Some forms of circularity in Logic and Mathematics (self-membership, self-application, impredicativity, …) are analyzed as closure properties of suitable mathematical structures since they can be considered as solutions of some systems of equations. At the same time, from a philosophical point of view, we stress the contribution of these circularities to the power of mathematics in making the world intelligible;Certaines formes de circularité logiques et mathématiques (auto-appartenance, auto-implication, imprédicativité) sont analysées comme des propriétés de fermeture de certaines structures mathématiques puisqu'on peut les interpréter comme des solutions de certains systèmes d'équations. Parallèlement, du point de vue philosophique, on met en évidence la contribution de ces circularités au pouvoir des mathématiques à rendre le monde intelligible

    Cercles vicieux, mathématiques et formalisations logiques

    Get PDF
    Some forms of circularity in Logic and Mathematics (self-membership, self-application, impredicativity, …) are analyzed as closure properties of suitable mathematical structures since they can be considered as solutions of some systems of equations. At the same time, from a philosophical point of view, we stress the contribution of these circularities to the power of mathematics in making the world intelligible;Certaines formes de circularité logiques et mathématiques (auto-appartenance, auto-implication, imprédicativité) sont analysées comme des propriétés de fermeture de certaines structures mathématiques puisqu'on peut les interpréter comme des solutions de certains systèmes d'équations. Parallèlement, du point de vue philosophique, on met en évidence la contribution de ces circularités au pouvoir des mathématiques à rendre le monde intelligible

    Programmation par contraintes sur les flux de données

    Get PDF
    We study the generalization of constraint programming on variables finite domains with variable flow. On the one hand, the flow of concepts, infinite sequences and infinite words have been the subject of numerous studies, and a goal is to achieve a state of the art covering language theory, classical and temporal logics as well as many related formalisms. The reconciliation performed with temporal logics is a first step towards unification formalisms on flows and temporal logics being themselves many, we establish a classification of these will allow the extrapolation of contributions to other contexts. The second objective is to identify the elements of these formalisms that allow the processing of satisfaction problems with the techniques of constraint programming on finite domain variables. Compared to the expressiveness of temporal logic, that of our formalism is more limited. This is due to the fact that constraint programming allows only the conjunction of constraints and requires integrating the disjunction in the notion of constraint propagator. Our formalism allows a gain in conciseness and reuse of the concept of propagator. The issue of generalization to more expressive logics is left open.Nous étudions la généralisation de la programmation par contraintes sur les variables à domaines finis aux variables flux. D'une part, les concepts de flux, de séquences infinies et de mots infinis ont fait l'objet de nombreux travaux, et un objectif consiste à réaliser un état de l'art qui couvre la théorie des langages, les logiques classiques et temporelles, ainsi que les nombreux formalismes apparentés. Le rapprochement effectué avec les logiques temporelles est un premier pas vers l'unification des formalismes sur les flux, et les logiques temporelles étant elles-même nombreuses, nous établissons une classification de celles-ci qui permettra l'extrapolation des contributions à d'autres contextes. Le second objectif consiste à identifier les éléments de ces formalismes qui permettent le traitement des problèmes de satisfaction avec les techniques de la programmation par contraintes sur les variables à domaines finis. Comparée à l'expressivité des logiques temporelles, celle de notre formalisme est plus limitée. Ceci est dû au fait que la programmation par contraintes ne permet que la conjonction de contraintes, et impose d'intégrer la disjonction dans la notion de propagateur de contraintes. Notre formalisme permet un gain en concision et la réutilisation de la notion de propagateur. La question de la généralisation à des logiques plus expressives est laissée ouverte

    Compilation certifiée de SCADE/LUSTRE

    Get PDF
    Les langages synchrones sont apparus autour des années quatre-vingt, en réponse à un besoin d avoir un modèle mathématique simple pour implémenter des systèmes temps réel critiques. Dans ce modèle, le temps est découpé en instants discrets durant lesquels tous les composants du système reçoivent et produisent une donnée. Cette modélisation permet des raisonnements beaucoup plus simples en évitant de devoir prendre en compte le temps de calcul de chaque opération. Dans le monde du logiciel critique, la fiabilité du matériel et de son fonctionnement sont primordiaux, et on accepte d être plus lent si on devient plus sûr. Afin d augmenter cette fiabilité, plutôt que de concevoir manuellement tout le système, on utilise des machines qui synthétisent automatiquement le système souhaité à partir d une description la plus concise possible. Dans le cas du logiciel, ce mécanisme s appelle la compilation, et évite des erreurs introduites par l homme par inadvertance. Elle ne garantit cependant pas la bonne correspondance entre le système produit et la description donnée. Des travaux récents menés par une équipe INRIA dirigée par Xavier Leroy ont abouti en 2008 au compilateur CompCert d un sous-ensemble large de C vers l assembleur PowerPC pour lequel il a été prouvé dans l assistant de preuve Coq que le code assembleur produit correspond bien à la description en C du programme source. Un tel compilateur offre des garanties fortes de bonne correspondance entre le système synthétisé et la description donnée. De plus, avec les compilateurs utilisés pour le temps réel critique, la plupart des optimisations sont désactivées afin d éviter les erreurs qui y sont liées. Dans CompCert, des optimisations elles aussi prouvées sont proposées, ce qui pourrait permettre ces passes dans la production de systèmes temps réel critiques sans en compromettre la fiabilité. Le but de cette thèse est d avoir une approche similaire mais spécifique à un langage synchrone, donc plus approprié à la description de systèmes temps réel critiques que ne l est le C. Un langage synchrone flots de données semblable à Lustre, nommé Ls, et un langage impératif semblable au langage C, nommé Obc y sont proposés ainsi que leur sémantique formelle et une chaîne de compilation avec des preuves de préservation de sémantique le long de cette chaîne.Synchronous languages first appeared during the 80 s, in order to provide a mathematical model for safety-critical systems. In this model, time is discrete. At each instant, all components of the system simultaneously receive and produce some data. This model allows simpler reasonning on the behaviour of the system, as it does not involve the time required for each of the operations for every component. In safety-critical systems, safety is the rule, so a poor performance behaviour can be allowed if it improves safety. In order to improve safety, rather than conceiving directly the system, machines are used to automatically design the system from a given concise description. In the case of software, this machine is called a compiler, and avoids issues due to some human inadvertence. But it does not ensure that the produced system and the description specification really show the same behaviour. Some recent work from an INRIA team lead by Xavier Leroy achieved in 2008 the realisation of the CompCert compiler from a large subset of C to PowerPC assembly, for which it was proven inside of the Coq proof assistant that the produced system fits its source description. Such a compiler offers strong guarantees that the produced system and its given description by the programmer really fit. Furthermore, most current compiler s optimizations are disabled when dealing with safety-critical systems in order to avoid tedious compilation errors that optimizations may introduce. Proofs for optimizations may allow their use in this domain without affecting the faith we could place in the compiler. The aim of this thesis is to follow a similar path, but this one on a language which would be more suited for safety-critical systems than the C programming language. Some dataflow synchronous programming language very similar to Lustre, called Ls is described with its formal semantics, as well as an imperative programming language similar to a subset of C called Obc. Furthermore some compilation process is described as well as some proofs that the semantics is preserved during the compilation process.PARIS11-SCD-Bib. électronique (914719901) / SudocSudocFranceF

    Typer a de la classe : le polymorphisme ad hoc dans un langage avec des types dépendants et de la métaprogrammation

    Full text link
    La modularité est un enjeu important en programmation, surtout quand on l’enrichit avec des preuves, comme dans les langages avec des types dépendants. Typer est un tel langage, et afin d’augmenter sa modularité et de lui ajouter un moyen de faire la surcharge d’opérateurs, on s’inspire d’Agda et Coq et on l’étend avec les arguments instances, qui généralisent les classes de types de Haskell. Un aspect qui distingue notre conception est que comme Typer généralise les définitions, la généralisation des contraintes de classe est grandement facilitée. Pour pouvoir faire les preuves de lois de classes, on doit également ajouter l’élimination dépendante des types inductifs au langage, dont certains aspects sont en retour facilités par les arguments instances. Sur la base de ces deux fonctionnalités, on offre également une solution au problème de la cécité booléenne, tel que décrit par Harper.Modularity is an important concern for software development, especially when the latter is enriched with proofs in a language with dependent types. Typer is such a language, and in order to increase its modularity, and also provide a way to overload operators, we take inspiration from Agda and Coq and extend it with instance arguments, a generalization of Haskell’s type classes. An aspect that sets our design apart is that since Typer generalizes definitions, it greatly simplifies the generalization of class constraints. In order to allow writing proofs for class laws, we must also implement the dependent elimination of inductive types. In return, instance arguments facilitate some details of dependent elimination. Using both features, we suggest a solution to the problem of Boolean Blindness

    Puissance expressive des preuves circulaires

    Get PDF
    This research aims at establishing the fundamental properties of a formal system with circular proofs introduced by Santocanale, to which we add the Cut rule. We show, first, that there is a full correspondence between circular proofs and the arrows of µ-bicomplete categories. Those arrows are those that one can define purely from the following tools: finite products and coproducts, initial algebras and final coalgebras. In the category of Sets for instance, circular proofs denote the functions that one can define using Cartesian products, finite disjoint unions, induction and coinduction. We also describe a cut-elimination procedure that produces, from a finite circular proof, an acyclic, possibly infinite cut-free proof. We show that cut-elimination provides an operational semantics to circular proofs, that is, it allows to effectively compute the functions denoted by them, by acting as a kind of automaton with memory. Lastly, we tackle the problem of evaluating the expressive power of the cut-eliminating automaton. We show, by simulation, that it is strictly more expressive than higher-order pushdown automata.Cette recherche vise à établir les propriétés fondamentales d'un système formel aux preuves circulaires introduit par Santocanale, auquel on a rajouté la règle de coupure. On démontre, dans un premier temps, qu'il y a une pleine correspondance entre les preuves circulaires et les flèches issues des catégories dites µ-bicomplètes. Ces flèches sont celles que l'on peut définir purement à partir des outils suivants: les produits et coproduits finis, les algèbres initiales et les coalgèbres finales. Dans la catégorie des ensembles, les preuves circulaires dénotent donc les fonctions qu'on peut définir en utilisant les produits cartésiens finis, les unions disjointes finies, l'induction et la coinduction. On décrit également une procédure d'élimination des coupures qui produit, à partir d'une preuve circulaire finie, une preuve sans cycles et sans coupures, mais possiblement infinie. On démontre que l'élimination des coupures fournit une sémantique opérationnelle aux preuves circulaires, c'est-à-dire qu'elle permet de calculer les fonctions dénotées par celles-ci, par le moyen d'une sorte d'automate avec mémoire. Enfin, on s'intéresse au problème de la puissance expressive de cet éliminateur de coupures, c'est-à-dire à la question de caractériser la classe des expressions qu'il peut calculer. On démontre, par une simulation, que l'éliminateur des coupures est strictement plus expressif que les automates à pile d'ordre supérieur

    Approche orientée aspect pour l’amélioration de la fiabilité et de la performance temporelle d’un système tolérant aux fautes

    Get PDF
    Le principe de la séparation des préoccupations est à la base de l’ingénierie logicielle et permet de diviser le logiciel en propriétés à chaque fois plus petites pour en maîtriser la complexité, de la conception jusqu’à la réalisation. Cet article propose l’évaluation probabiliste des systèmes critiques programmés tolérants aux fautes pour améliorer leur fiabilité et leur disponibilité, dès leur phase de conception. De plus, pour améliorer leur temps de réponse, nous utilisons comme approche la séparation des préoccupations, fonctionnelles (conduite) et non fonctionnelles (contrôle). Cette phase sera concrétisée par le développement d’un simulateur basé sur la programmation orientée aspect (AspectJ). L'objectif principal est de montrer l’impact de cette séparation sur le temps de réponse pour qu'une architecture matérielle d'un processeur exécute correctement les instructions et les routines d'une application logicielle.L’évaluation probabiliste est basée sur les taux de défaillance d'exécution des instructions logicielles sur une architecture matérielle d'un processeur à pile que nous allons justifier son choix. Les défaillances prises en compte dans ce travail sont à la base d’une étude de décomposition et de raffinement réalisée par le NFR Framework. Résultat, ce travail a permis de traiter la problématique d'interaction matériel/logiciel dans les systèmes critiques programmés ainsi que l’amélioration du temps d’exécution

    Actes des 14e journées sur les Approches Formelles dans l'Assistance au Développement de Logiciels

    Get PDF
    National audienceCet ouvrage présente les actes des 14èmes journées sur les Approches Formelles dans l'Assistance au Développement de Logiciels (AFADL'2015) qui se sont tenues à Bordeaux les 9 et 10 juin 2015
    • …
    corecore