24 research outputs found

    A Formal Proof of Square Root and Division Elimination in Embedded Programs

    Get PDF
    International audienceThe use of real numbers in a program can introduce differences between the expected and the actual behavior of the program, due to the finite representation of these numbers. Therefore, one may want to define programs using real numbers such that this difference vanishes. This paper defines a program transformation for a certain class of programs that improves the accuracy of the computations on real number representations by removing the square root and division operations from the original program in order to enable exact computation with addition, multiplication and subtraction. This transformation is meant to be used on embedded systems, therefore the produced programs have to respect constraints relative to this kind of code. In order to ensure that the transformation is correct, i.e. preserves the semantics, we also aim at specifying and proving this transformation using the Pvs proof assistant

    Elimination des racines et divisions pour du code embarqué

    Get PDF
    National audienceCe poster présente une transformation de programme qui élimine les divisions et les racines carrées dans des programmes sans boucles. Cette élimination permet de calculer ensuite exactement avec les opérations restante

    Prédiction par essais virtuels de l'amortissement dans les liaisons du lanceur Ariane 5

    Get PDF
    L’objectif de cette étude est de proposer une stratégie pour essais virtuels pour la prédiction de l’amortissement dû aux liaisons présentes dans la structure. Ce travail se restreint aux types de liaisons rencontrées en industrie spatiale, particulièrement dans le lanceur spatial ARIANE 5. La stratégie que nous développons ici est numérique et est basée sur la méthode LATIN dans sa version multiéchelle

    Characterising Renaming within OCaml’s Module System: Theory and Implementation

    Get PDF
    We present an abstract, set-theoretic denotational semantics for a significant subset of OCaml and its module system in order to reason about the correctness of renaming value bindings. Our abstract semantics captures information about the binding structure of programs. Crucially for renaming, it also captures information about the relatedness of different declarations that is induced by the use of various different language constructs (e.g. functors, module types and module constraints). Correct renamings are precisely those that preserve this structure. We demonstrate that our semantics allows us to prove various high-level, intuitive properties of renamings. We also show that it is sound with respect to a (domain-theoretic) denotational model of the operational behaviour of programs. This formal framework has been implemented in a prototype refactoring tool for OCaml that performs renamin

    Transformation de Programmes pour des Nombres Réels Fiables

    No full text
    This thesis presents an algorithm that eliminates square root and division operations in some straight-line programs used in embedded systems while preserving the semantics. Eliminating these two operations allows to avoid errors at runtime due to rounding. These errors can lead to a completely unexpected behavior from the program. This transformation respects the constraints of embedded systems, such as the need for the program to be executed in a fixed size memory. The transformation uses two fundamental algorithms developed in this thesis. The first one allows to eliminate square roots and divisions from Boolean expressions built with comparisons of arithmetic expressions. The second one is an algorithm that solves a particular anti-unification problem, that we call constrained anti-unification. This program transformation is defined and proven in the PVS proof assistant. It is also implemented as a strategy for this system. Con- strained anti-unification is also used to extend this transformation to programs containing functions. It allows to eliminate square roots and divisions from PVS specifications. Robustness of this method is highlighted by a major example: the elimination of square roots and divisions in a conflict detection algorithm used in aeronautics.Cette thèse présente un algorithme qui élimine les racines carrées et les divisions dans des programmes sans boucles, utilisés dans des systèmes embarqués, tout en préservant la sémantique. L'élimination de ces opérations permet d'éviter les erreurs d'arrondis à l'exécution, ces erreurs d'arrondis pouvant entraîner un comportement complètement inattendu de la part du programme. Cette trans- formation respecte les contraintes du code embarqué, en particulier la nécessité pour le programme produit de s'exécuter en mémoire fixe. Cette transformation utilise deux algorithmes fondamentaux développés dans cette thèse. Le premier permet d'éliminer les racines carrées et les divisions des expressions booléennes contenant des comparaisons d'expressions arithmétiques. Le second est un algorithme qui résout un problème d'anti-unification particulier, que nous appelons anti-unification contrainte. Cette transformation de programme est définie et prouvée dans l'assistant de preuves PVS. Elle est aussi implantée comme une stratégie de ce système. L'anti-unification contrainte est aussi utilisée pour étendre la transformation à des programmes contenant des fonctions. Elle permet ainsi d'éliminer les racines carrées et les divisions de spécifications écrites en PVS. La robustesse de cette méthode est mise en valeur par un exemple conséquent: l'élimination des racines carrées et des divisions dans un programme de détection des conflits aériens

    A Certifying Square Root and Division Elimination

    Get PDF
    AbstractThis paper presents the implementation of a program transformation that removes square roots and divisions from functional programs without recursion, producing code that can be exactly computed. This transformation accepts different subsets of languages as input and it provides a certifying mechanism when the targeted language is Pvs. In this case, we provide a relation between every function definition in the output code and its corresponding one in the input code, that specifies the behavior of the produced function with respect to the input one. This transformation has been implemented in OCaml and has been tested on different algorithms from the NASA ACCoRD project

    A Formal Proof of Square Root and Division Elimination in Embedded Programs

    No full text
    The use of real numbers in a program can introduce differences between the expected and the actual behavior of the program, due to the finite representation of these numbers. Therefore, one may want to define programs using real numbers such that this difference vanishes. This paper defines a program transformation for a certain class of programs that improves the accuracy of the computations on real number representations by removing the square root and division operations from the original program in order to enable exact computation with addition, multiplication and subtraction. This transformation is meant to be used on embedded systems, therefore the produced programs have to respect constraints relative to this kind of code. In order to ensure that the transformation is correct, i.e. preserves the semantics, we also aim at specifying and proving this transformation using the PVS proof assistant

    Sur une stratégie de calcul pour les problèmes multiphysiques

    No full text
    L'objectif de ce travail est d'étendre le concept d'interface entre sous structures a celui d'interface entre physiques afin de proposer un cadre de réflexion général pour la simulation des problèmes multi physiques. On présente ainsi une nouvelle stratégie, fondée sur la méthode latin, dont on montre la faisabilité sur le problème d'interaction fluide structure dans un sol poreux. Une technique d'approximation radiale des inconnues est ensuite mise en place afin d'accroître les performances de méthode. Le volet suivant est l'utilisation du concept d'interface entre physiques pour prendre en compte les aspects multiechelles en temps et en espace. Des techniques de couplage et de transfert sont introduites afin de permettre l'utilisation de discrétisations temporelles et de maillages spatiaux différents pour chacune des physiques. Enfin, des travaux sur le traitement des non linéarités sont présentes et montrent que ces aspects n'affectent pas les performances de la stratégie.The aim of this work is to extend the usual concept of interface between substructures to that of interface between physics in order to propose a general framework for the simulation of multiphysic problems. A new strategy, derived from the latin method, is presented and its feasibility demonstrated on the fluid structure interaction problem in porous media. A technique of radial loading approximation of unknowns is then setup to increase the performance of the method. The following step is the use of the concept of interface between physics to take into account the time and the spac multiscale aspects. Techniques of coupling and transfer are introduced in order to allow the use of different time and space discretizations for each. Lastly, some works on the taking into account of the nonlinearities are presented, showing that these aspects do not affect the performance of the strategyCACHAN-ENS (940162301) / SudocSudocFranceF

    Sur une stratégie de calcul pour les problèmes multiphysiques

    No full text
    L'objectif de ce travail est d'étendre le concept d'interface entre sous structures a celui d'interface entre physiques afin de proposer un cadre de réflexion général pour la simulation des problèmes multi physiques. On présente ainsi une nouvelle stratégie, fondée sur la méthode latin, dont on montre la faisabilité sur le problème d'interaction fluide structure dans un sol poreux. Une technique d'approximation radiale des inconnues est ensuite mise en place afin d'accroître les performances de méthode. Le volet suivant est l'utilisation du concept d'interface entre physiques pour prendre en compte les aspects multiechelles en temps et en espace. Des techniques de couplage et de transfert sont introduites afin de permettre l'utilisation de discrétisations temporelles et de maillages spatiaux différents pour chacune des physiques. Enfin, des travaux sur le traitement des non linéarités sont présentes et montrent que ces aspects n'affectent pas les performances de la stratégie.The aim of this work is to extend the usual concept of interface between substructures to that of interface between physics in order to propose a general framework for the simulation of multiphysic problems. A new strategy, derived from the latin method, is presented and its feasibility demonstrated on the fluid structure interaction problem in porous media. A technique of radial loading approximation of unknowns is then setup to increase the performance of the method. The following step is the use of the concept of interface between physics to take into account the time and the spac multiscale aspects. Techniques of coupling and transfer are introduced in order to allow the use of different time and space discretizations for each. Lastly, some works on the taking into account of the nonlinearities are presented, showing that these aspects do not affect the performance of the strategyCACHAN-ENS (940162301) / SudocSudocFranceF

    Sur l'extensibilité d'une stratégie de calcul multiéchelle et parallèle avec homogénéisation en temps et en espace

    No full text
    Nous développons une stratégie de calcul multiéchelle avec homogénéisation en temps et en espace pour la résolution de problèmes de structures fortement hétérogènes. Il s'agit d'une méthode mixte de décomposition de domaine en espace et en temps. Actuellement, l'extensibilité n'est que partielle en temps, l'objectif est de la rendre totale. Cet article s'intéresse à un point clé, l'utilisation d'une représentation adaptée des inconnues. Quelques exemples sont présentés pour illustrer cette technique
    corecore