Programmation fonctionnelle certifiée : l'extraction de programmes dans l'assistant Coq

par Pierre Letouzey

Thèse de doctorat en Informatique

Sous la direction de Christine Paulin-Mohring.

Soutenue en 2004

à Paris 11 .


  • Résumé

    Nous étudions ici la génération de programmes certifiés corrects par construction. Ces programmes sont obtenus en extrayant l'information pertinente de preuves constructives réalisées dans l'assistant de preuves Coq. Une telle traduction, ou "extraction", des preuves constructives en programmes fonctionnels n'est pas nouvelle, elle correspond à unisomorphisme bien connu sous le nom de Curry-Howard. Et l'assistant Coq comporte depuis longtemps un tel outil d'extraction. Mais l'outil précédent présentait d'importantes limitations. Certaines preuves Coq étaient ainsi hors de son champ d'application, alors que d'autres engendraient des programmes incorrects. Afin de résoudre ces limitations, nous avons effectué une refonte complète de l'extraction dans Coq, tant du point de vue de la théorie que de l'implantation. Au niveau théorique, cette refonte a entraîné la réalisation de nouvelles preuves de correction de ce mécanisme d'extraction, preuves à la fois complexes et originales. Concernant l'implantation, nous nous sommes efforcés d'engendrer du code extrait efficace et réaliste, pouvant en particulier être intégré dans des développement logiciels de plus grande échelle, par le biais de modules et d'interfaces. Enfin, nous présentons également plusieurs études de cas illustrant les possibilités de notre nouvelle extraction. Nous décrivons ainsi la certification d'une bibliothèque modulaire d'ensembles finis, et l'obtention de programmes d'arithmétique réelle exacte à partir d'une formalisation d'analyse réelle constructive. Même si des progrès restent encore à obtenir, surtout dans ce dernier cas, cesexemples mettent en évidence le chemin déjà parcouru.


  • Résumé

    This work concerns the generation of programs which are certified to be correct by construction. These programs are obtained by extracting relevant information from constructive proofs made with the Coq proof assistant. Such a translation, named "extraction", of constructive proofs into functional programs is not new, and corresponds to an isomorphism known as Curry-Howard's. An extraction tool has been part of Coq assistant for a long time. But this old extraction tool suffered from several limitations: in particular, some Coq proofs were refused by it, whereas some others led to incorrect programs. In order to overcome these limitations, we built a completely new extraction tool for Coq, including both a new theory and a newimplementation. Concerning theory, we developed new correctness proofs for this extraction mechanism. These new proofs are both complex and original. Concerning implementation, we focused on the generation of efficient and realistic code, which can be integrated in large-scale software developments, using modules and interfaces. Finally, we also present several case studies illustrating the capabilities of our new extraction. For example, we describe thecertification of a modular library of finite set structures, and the production of programs about real exact arithmetic, starting from aformalization of constructive real analysis. These examples show the progress already achieved, even if the situation is not perfect yet, in particular in the last study.

Consulter en bibliothèque

La version de soutenance existe sous forme papier

Informations

  • Détails : 223 p.
  • Notes : Publication autorisée par le jury
  • Annexes : Bibliogr. p.[211]-216

Où se trouve cette thèse ?

  • Bibliothèque : Université Paris-Sud (Orsay, Essonne). Service Commun de la Documentation. Section Sciences.
  • Disponible pour le PEB
  • Cote : 0g ORSAY(2004)58
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.