Spelling suggestions: "subject:"assistant à lla preuve"" "subject:"assistant à laa preuve""
1 |
Sémantiques formellesBlazy, Sandrine 23 October 2008 (has links) (PDF)
Ce mémoire présente plusieurs définitions de sémantiques formelles et de transformations de programmes, et expose les choix de conception associés. En particulier, ce mémoire décrit une transformation de programmes inspirée de l'évaluation partielle et dédiée à la compréhension de programmes scientifiques écrits en Fortran. Il détaille également le front-end d'un compilateur réaliste du langage C, ayant été formellement vérifié en C.
|
2 |
Certification formelle de preuves cryptographiques basées sur les séquences de jeuxZanella Beguelin, Santiago 09 December 2010 (has links) (PDF)
Les séquences de jeux sont une méthodologie établie pour structurer les preuves cryptographiques. De telles preuves peuvent être formalisées rigoureusement en regardant les jeux comme des programmes probabilistes et en utilisant des méthodes de vérification de programmes. Cette thèse décrit CertiCrypt, un outil permettant la construction et vérification automatique de preuves basées sur les jeux. CertiCrypt est implémenté dans l'assistant à la preuve Coq, et repose sur de nombreux domaines, en particulier les probabilités, la complexité, l'algèbre, et la sémantique des langages de programmation. CertiCrypt fournit des outils certifiés pour raisonner sur l'équivalence de programmes probabilistes, en particulier une logique de Hoare relationnelle, une théorie équationnelle pour l'équivalence observationnelle, une bibliothèque de transformations de programme, et des techniques propres aux preuves cryptographiques, permettant de raisonner sur les évènements. Nous validons l'outil en formalisant les preuves de sécurité de plusieurs exemples emblématiques, notamment le schéma de chiffrement OAEP et le schéma de signature FDH.
|
3 |
Implémentation d'un langage fonctionnel orienté vers la méta programmationDelaunay, Pierre 03 1900 (has links)
Ce mémoire présente l'implémentation d'un nouveau langage de programmation nommé Typer.
Typer est un langage fonctionnel orienté vers la méta programmation.
Il a été conçu pour augmenter la productivité du programmeur et lui permettre d'écrire des applications
plus fiables grâce à son système de types.
Pour arriver à ses fins, Typer utilise l'inférence de types et implémente un puissant système de macros.
L'inférence de types permet à l'utilisateur d'omettre certains éléments,
le système de macros, quant à lui, permet de compléter le programme pendant la compilation
lorsque l'inférence n'est pas suffisante ou pour générer du code.
Typer utilise les types dépendants pour permettre à l'utilisateur
de créer des types très expressifs pouvant même être utilisés pour représenter
des preuves formelles. De plus, l'expressivité des types dépendants permet
au compilateur d'effectuer des vérifications plus approfondies pendant la compilation même.
Ces mécaniques permettent au code source d'être moins verbeux,
plus concis et plus simple à comprendre, rendant, ainsi l'écriture de programmes
ou/et de preuves plus plaisante. Ces fonctionnalités sont implémentées
dans l'étape que nous appelons l'élaboration, à l'intérieur de laquelle
de nombreuses transformations du code source ont lieu. Ces transformations
incluent l'élimination des aides syntaxiques,
la résolution des identificateurs, l'expansion des macros, la propagation et l'inférence des types. / This dissertation present the implementation of a new programming language named Typer
Typer is a functional programming language oriented towards meta programming.
It has been created to increase the programmer productivity and enable him to write
safer programs thanks to his type system.
To achieve his goal, Typer use type inference and a powerful macro system.
Type inference enable to user to elide some elements while the macro system
enable us to complete the program during compilation.
Typer use dependent type which enable the user to create very expressive types
which can even be used to represent formal proofs. Furthermore, dependent type's expressivity
enable the compiler to perform a in-depth checks during compilation.
Those mechanics enable the source code to be less verbose, shorter and
easier to understand, making the writing of new programmes more enjoyable.
Those functionalities are implemented during the step we call the elaboration
in which numerous transformations occur. Those transformations include
the removal of syntactic sugar, identifier resolution, macro expansion and
the propagation and the inference of types.
|
4 |
Assistance à la validation et vérification de systèmes critiques : ontologies et intégration de composants / Support for the validation and verification of critical systems : ontologies and integration of componentsKezadri, Mounira 11 July 2013 (has links)
Les activités de validation et vérification de modèles sont devenues essentielles dans le développement de systèmes complexes. Les efforts de formalisation de ces activités se sont multipliés récemment étant donné leur importance pour les systèmes embarqués critiques. Notre travail s’inscrit principalement dans cette voie. Nous abordons deux visions complémentaires pour traiter cette problématique. La première est une description syntaxique implicite macroscopique basée sur une ontologie pour aider les concepteurs dans le choix des outils selon leurs exigences. La seconde est une description sémantique explicite microscopique pour faciliter la construction de techniques de vérification compositionnelles. Nous proposons dans la première partie de cette thèse une ontologie pour expliquer et expliciter les éléments fondateurs du domaine que nous appelons VVO. Cette ontologie pourra avoir plusieurs autres utilisations : une base de connaissance, un outil de formation ou aussi un support pour le choix de la méthode à appliquer et l’inférence de correspondance entre outils. Nous nous intéressons dans la seconde partie de cette thèse à une formalisation dans un assistant à la preuve de l’introduction de composants dans un langage de modélisation et des liens avec les activités de validation et vérification. Le but est d’étudier la préservation des propriétés par composition : les activités de vérification sont généralement coûteuses en terme de temps et d’effort, les faire d’une façon compositionnelle est très avantageux. Nous partons de l’atelier formel pour l’Ingénierie Dirigée par les Modèles Coq4MDE. Nous suivons la même ligne directrice de développement prouvé pour formaliser des opérateurs de composition et étudier la conservation des propriétés par assemblage. Nous nous intéressons au typage puis à la conformité de modèles par rapport au métamodèle et nous vérifions que les opérateurs définis permettent de conserver ces propriétés. Nous nous focalisons sur l’étude d’opérateurs élémentaires que nous exploitons pour spécifier des opérateurs de plus haut niveau. Les préconditions des opérateurs représentent les activités de vérification non compositionnelles qui doivent être effectuées en plus de la vérification des composants pour assurer la postcondition des opérateurs qui est la propriété souhaitée. Nous concluons en présentant des perspectives pour une formalisation algébrique en théorie des catégories. / The validation and verification of models have become essential in the development of complex systems. The formalisation efforts for these activities have increased recently being given their importance for critical embedded systems. We discuss two complementary visions for addressing these issues. The first is a syntactic implicit macroscopic description based on an ontology to help designers in the choice of tools depending on their requirements. The second is a microscopic explicit semantics description aiming to facilitate the construction of compositional verification techniques. We propose in the first part of this thesis an ontology to explain and clarify the basic elements of the domain of Verification and Validation that we call VVO. This ontology may have several other uses: a knowledge base, a training tool or a support for the choice of the method to be applied and to infer correspondence between tools. We are interested in the second part of this thesis in a formalisation using a proof assistant for the introduction of components in a modelling language and their links with verification and validation activities. The aim is to study the preservation of properties by the composition activities. The verification are generally expensive in terms of time and efforts, making theme in a compositional way is very advantageous. Starting from the formal framework for Model Driven Engineering COQ4MDE, we follow the same line of though to formalize the composition operators and to study the conservation of properties by composition. We are interested in typing and conformity of models in relation with metamodels and we verify that the defined operators allow to preserve these properties. We focus on the study of elementary operators that we use to specify hight level operators. The preconditions for the operators represent the non-compositional verification activities that should be performed in addition to verification of components to ensure the desired postcondition of the operator. We conclude by studying algebraic formalisation using concepts from category theory.
|
Page generated in 0.1079 seconds