Conception et implémentation d'un système d'aide à la spécification et à la preuve de programmes ML - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2003

Conception et implémentation d'un système d'aide à la spécification et à la preuve de programmes ML

Résumé

One should not underestimate the import of being able to verify the conformance between a program and its specification. Furthermore, being able to verify it using a dedicated program allows one to check the correctness of this verification. For this purpose, one uses proof assistants, which are programs that allows to describe the problem, build proofs, then check them. There are more than one way to achieve this goal : one could either generate the program from its specification ; one could use an annotated program which carries the specification and hints on how to prove the conformance, then check it afterwards ; or one could start from the specification and the program, then prove the conformance of the latter with respect to the first. For our system, we chose the last approach. We implemented a system in which the user describes the speci- fication of a program in a dedicated logical framework, then writes the program in the ML programming language, restricted to the functional subset (with pattern matching, inductive definitions and partial functions), then, after all, interactively builds the proof of conformance of the program with respect to its specification. There are three different aspects in our work : – formalization of a logical framework dedicated to the verification of programs written in the functional part of ML; – precize specification of the proof assistant, its user interface, and the protocol used by both in order to communicate ; – the implementation of the proof assistant in Objective Caml, using an original architecture which mixes object oriented programming and functional programming. All these elements may be found in this document, including a precize description of the implementation, the choices we made and the reasons of these choices. The reader will also find here a description on how to use our system, and some examples of problems handled with it.
Pouvoir vérifier la conformité d'un programme avec sa spécification représente un enjeu important. On peut utiliser un assistant de preuve : un logiciel permettant la description du problème, la construction des preuves et leur vérification. Nous avons implémenté un système où l'utilisateur décrit la spécification du programme dans un formalisme logique ad hoc, donne le programme dans le sous-ensemble fonctionnel de ML (comprenant filtrage, définitions récursives et fonctions partielles), puis construit interactivement les preuves de correction nécessaires pour prouver la validité du programme.

Domaines

Autre [cs.OH]
Fichier principal
Vignette du fichier
tel-00008416.pdf (695.28 Ko) Télécharger le fichier
Loading...

Dates et versions

tel-00008416 , version 1 (09-02-2005)

Identifiants

  • HAL Id : tel-00008416 , version 1

Citer

Sylvain Baro. Conception et implémentation d'un système d'aide à la spécification et à la preuve de programmes ML. Autre [cs.OH]. Université Paris-Diderot - Paris VII, 2003. Français. ⟨NNT : ⟩. ⟨tel-00008416⟩
136 Consultations
530 Téléchargements

Partager

Gmail Facebook X LinkedIn More