Extraction de code fonctionnel certifié à partir de spécifications inductives
Auteur / Autrice : | Pierre-Nicolas Tollitte |
Direction : | Catherine Dubois, David Delahaye |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 06/12/2013 |
Etablissement(s) : | Paris, CNAM |
Ecole(s) doctorale(s) : | École doctorale Informatique, télécommunications et électronique de Paris |
Partenaire(s) de recherche : | Laboratoire : Centre d'études et de recherche en informatique et communications (Paris) |
Jury : | Président / Présidente : Xavier Leroy |
Examinateurs / Examinatrices : Hugo Herbelin, Mathieu Jaume | |
Rapporteurs / Rapporteuses : Pierre Letouzey, Vlad Rusu |
Mots clés
Résumé
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.