• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 39
  • 33
  • 3
  • 2
  • 1
  • 1
  • Tagged with
  • 82
  • 43
  • 39
  • 24
  • 20
  • 19
  • 18
  • 16
  • 16
  • 16
  • 14
  • 14
  • 13
  • 13
  • 13
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
51

Approche logique des grammaires pour les langues naturelles

Anoun, Houda 24 October 2007 (has links) (PDF)
Les contributions majeures de cette thèse s'articulent autour des trois axes de base de la linguistique computationnelle, à savoir la logique, la linguistique et l'informatique. Nous proposons ainsi un nouveau système non-directionnel GLE permettant de simuler les opérations transformationnelles du Programme Minimaliste dans un cadre logique qui fait appel au raisonnement hypothétique de manière contrôlée. La pertinence de ce formalisme est soulignée en montrant sa capacité à prendre en charge des phénomènes linguistiques complexes, nécessitant un partage contraint de ressources, tels que le liage d'anaphores ou la résolution d'ellipse. En outre, nous présentons un atelier logique, nommé ICHARATE, destiné à la recherche et l'enseignement de la linguistique computationnelle. Cet outil est composé de bibliothèques pour l'assistant à la démonstration Coq, qui comprennent la formalisation de systèmes logiques avancés dédiés au traitement des langues naturelles, dont la logique multimodale.
52

Approches fonctionnelles de la programmation parallèle et des méta-ordinateurs. Sémantiques, implantations et certification.

Gava, Frédéric 12 December 2005 (has links) (PDF)
Certains problèmes nécessitent des performances que seules les machines massivement parallèles<br />ou les méta-ordinateurs peuvent offrir. L'écriture d'algorithmes pour ce type de machines demeure<br />plus difficile que pour celles strictement séquentielles et la conception de langages adaptés est un sujet de<br />recherche actif nonobstant la fréquente utilisation de la programmation concurrente. En effet, la conception<br />d'un langage de programmation est le résultat d'un compromis qui détermine l'équilibre entre les différentes<br />qualités du langage telles que l'expressivité, la sûreté, la prédiction des performances, l'efficacité ou<br />bien la simplicité de la sémantique.<br />Dans des travaux antérieurs à cette thèse, il a été entrepris d'approfondir la position intermédiaire que le<br />paradigme des patrons occupe. Toutefois il ne s'agissait pas de concevoir un ensemble a priori fixé d'opérations<br />puis de concevoir des méthodologies pour la prédiction des performances, mais de fixer un modèle<br />de parallélisme structuré (avec son modèle de coûts) puis de concevoir un ensemble universel d'opérations<br />permettant de programmer n'importe quel algorithme de ce modèle. L'objectif est donc le suivant : parvenir<br />à la conception de langages universels dans lesquels le programmeur peut se faire une idée du coût à partir<br />du code source.<br />Cette thèse s'inscrit dans le cadre du projet «CoordinAtion et Répartition des Applications Multiprocesseurs<br />en objective camL» (CARAML) de l'ACI GRID dont l'objectif était le développement de bibliothèques<br />pour le calcul haute-performance et globalisé autour du langage OCaml. Ce projet était organisé en trois<br />phases successives : sûreté et opérations data-parallèles irrégulières mono-utilisateur ; opérations de multitraitement<br />data-parallèle ; opérations globalisées pour la programmation de grilles de calcul.<br />Ce tapuscrit est organisé en 3 parties correspondant chacune aux contributions de l'auteur dans chacune<br />des phases du projet CARAML : une étude sémantique d'un langage fonctionnel pour la programmationBSP<br />et la certification des programmes écrits dans ce langage ; une présentation d'une primitive de composition<br />parallèle (et qui permet aussi la programmation d'algorithmes «diviser-pour-régner» parallèles), un exemple<br />d'application via l'utilisation et l'implantation de structures de données parallèles et une extension pour les<br />entrées/sorties parallèles en BSML ; l'adaption du langage pour le méta-calcul.
53

Composants mathématiques pour la théorie des groupes

Ould Biha, Sidi 24 February 2010 (has links) (PDF)
Les systèmes de preuves formelles ont connu ces dernières années des évolutions importantes. Des travaux récents, comme la preuve formelle du théorème des quatre couleurs ou celle du théorème des nombres premiers, ont montré que ces systèmes ont atteint un niveau de maturité leur permettant de s'attaquer à des problèmes mathématiques non triviaux. Malgré cela, l'utilisation des systèmes de preuves formelles en mathématique reste très limitée. Un des arguments qui est avancé pour expliquer cette situation est le manque de bibliothèques de preuves formelles. Cette thèse s'intéresse au développement de composants mathématiques pour la théorie des groupes finis. Elle entre dans le cadre du travail de formalisation du théorème de Feit-Thompson sur la classification des groupes finis. L'objectif principal dans ce travail est d'appliquer les techniques de génie logiciel pour faciliter la réutilisation et l'organisation des développements mathématiques formelles de grande échelle, comme la formalisation du théorème de Feit-Thompson. Cette thèse présente une première formalisation du théorème de Cayley-Hamilton sur les polynômes et les matrices. Elle présente aussi des développements sur la théorie des représentations des groupes finis qui est une composante nécessaire à la formalisation de la preuve du théorème de Feit-Thompson. En particulier, elle présente une formalisation de la théorie des modules sur un corps ou sur une algèbre ainsi qu'une formalisation du théorème de Maschke. Ces développements ont été faits dans le système Coq et avec l'extension SSReflect.
54

Certification formelle de preuves cryptographiques basées sur les séquences de jeux

Zanella 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.
55

Extraction de code fonctionnel certifié à partir de spécifications inductives.

Tollitte, Pierre-Nicolas 06 December 2013 (has links) (PDF)
Les outils d'aide à la preuve basés sur la théorie des types permettent à l'utilisateur d'adopter soit un style fonctionnel, soit un style relationnel (c'est-à-dire en utilisant des types inductifs). Chacun des deux styles a des avantages et des inconvénients. Le style relationnel peut être préféré parce qu'il permet à l'utilisateur de décrire seulement ce qui est vrai, de s'abstraire temporairement de la question de la terminaison, et de s'en tenir à une description utilisant des règles. Cependant, une spécification relationnelle n'est pas exécutable.Nous proposons un cadre général pour transformer une spécification inductive en une spécification fonctionnelle, en extrayant à partir de la première une fonction et en produisant éventuellement la preuve de correction de la fonction extraite par rapport à sa spécification inductive. De plus, à partir de modes définis par l'utilisateur, qui permettent de considérer les arguments de la relation comme des entrées ou des sorties (de fonction), nous pouvons extraire plusieurs comportements calculatoires à partir d'un seul type inductif.Nous fournissons également deux implantations de notre approche, l'une dans l'outil d'aide à la preuve Coq et l'autre dans l'environnement Focalize. Les deux sont actuellement distribuées avec leurs outils respectifs.
56

Développement et vérification des logiques probabilistes et des cadres logiques

Maksimović, Petar 15 October 2013 (has links) (PDF)
On présente une Logique Probabiliste avec des opérateurs Conditionnels - LPCP, sa syntaxe, sémantique, axiomatisation correcte et fortement complète, comprenant une règle de déduction infinitaire. On prouve que LPCP est décidable, et on l'étend pour qu'il puisse représenter l'évidence, en créant ainsi la première axiomatisation propositionnelle du raisonnement basé sur l'évidence. On codifie les Logiques Probabilistes LPP1Q et LPPQ2 dans l'Assistant de Preuve Coq, et on vérifie formellement leurs propriétés principales: correction, complétude fort et non-compacité. Les deux logiques étendent la Logique Classique avec des opérateurs de probabilité, et présentent une règle de déduction infinitaire. LPPQ1 permet des itérations des opérateurs de probabilité, lorsque LPPQ2 ne le permet pas. On a formellement justifié l'utilisation des solveurs SAT probabilistes pour vérifier les questions liées à la cohérence. On présente LFP, un Cadre Logique avec Prédicats Externes, en introduisant un mécanisme pour bloquer et débloquer types et termes dans LF, en permettant l'utilisation d'oracles externes. On démontre que LFP satisfait tous les principales propriétés et on développe un cadre canonique correspondant, qui permet de prouver l'adéquation. On fournit diverses encodages - le λ-calcul non-typé avec la stratégie de réduction CBV, Programmation-par-Contrats, un langage impératif avec la Logique de Hoare, des Logiques Modales et la Logique Linéaire Non-Commutative, en montrant que en LFP on peut codifier aisément des side-conditions dans l'application des règles de typage et atteindre une séparation entre vérification et computation, en obtenant des preuves plus claires et lisibles.
57

Automatisation de la Certification Formelle de Systèmes Critiques par Instrumentation d'Interpréteurs Abstraits

Garnacho, Manuel 27 August 2010 (has links) (PDF)
Mes travaux de doctorat ont porté sur la certification de programmes impératifs utilisés dans des applications critiques. Les certificats établissent la validité des propriétés sémantiques des programmes et sont produits sous forme de preuves déductives vérifiables par machine. Le défi relevé dans cette thèse est d'automatiser la construction des preuves de correction de programmes. Nous avons suivie l'approche de Floyd-Hoare pour prouver que les propriétés sémantiques sont des invariants du programme et nous avons utilisé le le système Coq pour vérifier la validité des preuves. On considére ici le cas où les propriétés sémantiques sont calculées par des analyseurs statiques de programmes qui s'appuient sur la théorie de l'interprétation abstraite. Nous proposons une méthode d'instrumentation des analyseurs statiques de programmes afin de leur faire générer automatiquement un certificat pour chaque propriété sémantique calculée. L'instrumentation consiste à associer à certaines fonctions d'un analyseur statique des patrons de preuve qui à l'exécution généreront les certificats. De tels analyseurs instrumentés ne sont pas pour autant certifiés puisque leur correction pour toutes leurs entrées possibles n'est pas garantie, néanmoins ils sont capables de justifier par une preuve formelle la correction du résultat de chacun de leurs calculs. Bien sûr, si pour une entrée possible l'exécution de l'analyseur est boguée le résultat sera erroné et la justification produite ne sera pas une preuve valide; elle sera rejettée par le vérificateur de preuves. Cette approche permet de certifier avec un très haut-niveau de confiance (celui du vérificateur de preuves) les résultats d'outils existants, même à l'état de prototypes. Pour que l'instrumentation soit applicable en pratique, nous avons cherché à limiter le nombre de fonctions à instrumenter. Nous avons dégagé un ensemble restreint de fonctions, commun à tout analyseur, à instrumenter pour qu'un analyseur existant devienne un outil de certification automatique. Nous avons appliqué cette technique d'instrumentation à un analyseur de programmes manipulant des tableaux qui s'appuie sur des domaines abstraits non triviaux. Cet analyseur calcule des propriétés sur le contenu des tableaux manipulés par les programmes et, grâce à notre instrumentation, génère désormais des certificats vérifiables par Coq attestant de la validité des propriétés découvertes par l'analyse statique. Nous montrons enfin comment utiliser cet analyseur instrumenté pour certifier un protocole de communication pour systèmes multi-tâches destiné à l'avionique. La garantie de la correction des programmes est cruciale dans le domaine des systèmes embarqués. Face aux coûts et la durée d'une procédure de certification formelle, le développement d'outils automatiques de certification représente un enjeu économique majeur. La transformation, par instrumentation, d'outils d'analyses existants en outils de certification est une réponse possible qui évite la certification des outils d'analyse.
58

Certification of a Tool Chain for Deductive Program Verification

Herms, Paolo 14 January 2013 (has links) (PDF)
This thesis belongs to the domain of software verification. The goalof verifying software is to ensure that an implementation, a program,satisfies the requirements, the specification. This is especiallyimportant for critical computer programs, such as control systems forair planes, trains and power plants. Here a malfunctioning occurringduring operation would have catastrophic consequences. Software requirements can concern safety or functioning. Safetyrequirements, such as not accessing memory locations outside validbounds, are often implicit, in the sense that any implementation isexpected to be safe. On the other hand, functional requirementsspecify what the program is supposed to do. The specification of aprogram is often expressed informally by describing in English or someother natural language the mission of a part of the program code.Usually program verification is then done by manual code review,simulation and extensive testing. But this does not guarantee that allpossible execution cases are captured. Deductive program proving is a complete way to ensure soundness of theprogram. Here a program along with its specificationis a mathematical object and its desired properties are logicaltheorems to be formally proved. This way, if the underlying logicsystem is consistent, we can be absolutely sure that the provenproperty holds for the program in any case.Generation of verification conditions is a technique helpingthe programmer to prove the properties he wants about his programs.Here a VCG tool analyses a program and its formal specification andproduces a mathematical formula, whose validity implies the soundnessof the program with respect to its specification. This is particularlyinteresting when the generated formulas can be proved automatically byexternal SMT solvers.This approach is based on works of Hoare and Dijkstra and iswell-understood and shown correct in theory. Deductive verificationtools have nowadays reached a maturity allowing them to be used inindustrial context where a very high level of assurance isrequired. But implementations of this approach must deal with allkinds of language features and can therefore become quite complex andcontain errors -- in the worst case stating that a program correcteven if it is not. This raises the question of the level ofconfidence granted to these tools themselves. The aim of this thesis is to address this question. We develop, inthe Coq system, a certified verification-condition generator (VCG) forACSL-annotated C programs.Our first contribution is the formalisation of an executableVCG for the Whycert intermediate language,an imperative language with loops, exceptions and recursive functionsand its soundness proof with respect to the blocking big-step operational semantics of the language.A second contribution is the formalisation of the ACSL logicallanguage and the semantics of ACSL annotations of Compcert's Clight.From the compilation of ACSL annotated Clight programs to Whycertprograms and its semantics preservation proof combined with a Whycertaxiomatisation of the Compcert memory model results our maincontribution: an integrated certified tool chainfor verification of C~programs on top of Compcert. By combining oursoundness result with the soundness of the Compcert compiler we obtaina Coq theorem relating the validity of the generated proof obligationswith the safety of the compiled assembly code.
59

De nouveaux outils pour calculer avec des inductifs en Coq

Boutillier, Pierre 18 February 2014 (has links) (PDF)
En ajoutant au lambda-calcul des structures de données algébriques, des types dépendants et un système de modules, on obtient un langage de programmation avec peu de primitives mais une très grande expressivité. L'assistant de preuve Coq s'appuie sur un tel langage (le CIC) à la sémantique particulièrement claire. L'utilisateur n'écrit pas directement de programme en CIC car cela est ardu et fastidieux. Coq propose un environnement de programmation qui facilite la tâche en permettant d'écrire des programmes incrémentalement grâce à des constructions de haut niveau plus concises. Typiquement, les types dépendants imposent des contraintes fortes sur les données. Une analyse de cas peut n'avoir à traiter qu'un sous-ensemble des constructeurs d'un type algébrique, les autres étant impossibles par typage. Le type attendu dans chacun des cas varie en fonction du constructeur considéré. L'impossibilité de cas et les transformations de type doivent être explicitement écrites dans les termes de Coq. Pourtant, ce traitement est mécanisable et cette thèse décrit un algorithme pour réaliser cette automatisation. Par ailleurs, il est nécessaire à l'interaction avec l'utilisateur de calculer des programmes du CIC sans faire exploser la taille syntaxique de la forme réduite. Cette thèse présente une machine abstraite conçu dans ce but. Enfin, les points fixes permettent une manipulation aisée des structure de données récursives. En contrepartie, il faut s'assurer que leur exécution termine systématiquement. Cette question sensible fait l'objet du dernier chapitre de cette thèse.
60

Étude formelle d'algorithmes efficaces en algèbre linéaire

Dénès, Maxime 20 November 2013 (has links) (PDF)
Les méthodes formelles ont atteint un degré de maturité conduisant à la conception de systèmes de preuves généralistes, permettant à la fois de vérifier la correction de systèmes logiciels complexes ou de formaliser des mathématiques avancées. Mais souvent, l'accent est mis davantage sur la facilité du raisonnement sur les programmes plutôt que sur leur exécution efficace. L'antagonisme entre ces deux aspects est particulièrement sensible pour les algorithmes de calcul formel, dont la correction repose habituellement sur des concepts mathématiques élaborés, mais dont l'efficacité pratique est une préoccupation importante. Cette thèse développe des approches à l'étude formelle et l'exécution efficace de programmes en théorie des types, et plus précisément dans l'assistant à la preuve \coq{}. Dans un premier temps, nous présentons un environnement d'exécution permettant de compiler en code natif de tels programmes tout en conservant la généralité et l'expressivité du formalisme. Puis, nous nous intéressons aux représentations de données et plus particulièrement au lien formellement vérifié et automatisé entre représentations adaptées aux preuves ou au calcul. Ensuite, nous mettons à profit ces techniques pour l'étude d'algorithmes en algèbre linéaire, comme le produit matriciel de Strassen, le procédé d'élimination de Gauss ou la mise en forme canonique de matrices, dont notamment la forme de Smith pour les matrices sur un anneau euclidien. Enfin, nous ouvrons le champ des applications à la formalisation et au calcul certifié des groupes d'homologie de complexes simpliciaux issus d'images numériques.

Page generated in 0.0419 seconds