Thèse
La soutenance de ma thèse intitulée:
« Un environnement pour la programmation avec types dépendants »
a eu lieu salle 79 du LRI à Orsay le lundi 8 décembre à
10h30 devant le jury composé de:
Mme Véronique Benzaken, Professeur à l'université de Paris-Sud 11 (examinatrice)
Mr Thierry Coquand, Professeur à l'université de Göteborg, Suède (rapporteur)
Mr James McKinna, Professeur à l'université de Nimègue, Pays-Bas (examinateur)
Mme Christine Paulin-Mohring, Professeur à l'université de Paris-Sud 11 (directrice de thèse)
Mr François Pottier, Directeur de recherche à l'INRIA Rocquencourt (rapporteur)
Mr Philip Wadler, Professeur à l'université d'Edimbourg, Écosse (examinateur)
Résumé:
Les systèmes basés sur la Théorie des Types prennent une importance
considérable tant pour la vérification de programmes qu'en tant
qu'outils permettant la preuve formelle de théorèmes mettant en jeu des
calculs complexes. Ces systèmes nécessitent aujourd'hui une grande
expertise pour être utilisés efficacement. Nous développons des
constructions de haut niveau permettant d'utiliser les langages basés
sur les théories des types dépendants aussi simplement que les langages
de programmation fonctionnels usuels, sans sacrifier pour autant la
richesse des constructions disponibles dans les premiers. Nous étudions
un nouveau langage permettant l'écriture de programmes certifiés en ne
donnant que leur squelette algorithmique et leur spécification. Le
typage dans ce système donne lieu à la génération automatique
d'obligations de preuve pouvant être résolues a posteriori. Nous
démontrons les propriétés métathéoriques essentielles du système, dont
les preuves sont partiellement mécanisées, et détaillons son
implémentation dans l'assistant de preuve Coq. D'autre part, nous
décrivons l'intégration et l'extension d'un système de "Type Classes"
venu d'Haskell à Coq via une simple interprétation des constructions
liées aux classes dans la théorie des types sous-jacente. Nous
démontrons l'utilité des classes de types dépendantes pour la
spécification et la preuve et présentons une implémentation économique
et puissante d'une tactique de réécriture généralisée basée sur les
classes. Nous concluons par la mise en œuvre de l'ensemble de ces
contributions lors du développement d'une bibliothèque certifiée de
manipulation d'une structure de données complexe, les "Finger Trees".
Une version du manuscript
est disponible
ainsi que les
transparents
de la soutenance et quelques photos.