previous up next top index
Précédent : Polymorphisme extensionnel Remonter : Systèmes de types Suivant : ASN.1


Preuves formelles de synthétiseurs de types

Participants : Valérie Ménissier-Morain, Pierre Weis

L'algorithme W est l'algorithme de synthèse de types du coeur des langages ML. Son originalité se trouve dans la gestion du polymorphisme, qui consiste en la généralisation de types contenant des variables de type, ainsi qu'en l'instanciation de types polymorphes en instances particulières. La correction et la complétude par rapport au système de types de ML ont déjà été prouvées, mais jamais vérifiées par machine. Valérie Ménissier-Morain et Pierre Weis se sont attaqués à ce problème en collaboration avec Samuel Boutin (projet COQ) et Catherine Dubois (Univ. d'Évry).

Après une spécification commune du problème, Pierre Weis et Samuel Boutin d'une part, et Valérie Ménissier-Morain et Catherine Dubois, d'autre part ont choisi de poursuivre deux voies parallèles pour s'attaquer à la preuve de W en Coq.

V. Ménissier-Morain et C. Dubois ont choisi de partir d'une description fonctionnelle de l'algorithme, alors que P. Weis et S. Boutin sont partis d'une description prédicative. Chacune de ces deux approches possède ses avantages et ses inconvénients (dans le cadre de l'utilisation du logiciel Coq) : disponibilité immédiate et automatique de l'algorithme d'une part, une plus grande liberté dans le choix des inductions d'autre part.

Ces travaux sont toujours en cours de réalisation, et les deux approches sont actuellement confrontées au problème du traitement des schémas de types (c'est-à-dire les types polymorphes), qui forment l'originalité de l'algorithme W.

L'approche fonctionnelle est décrite dans [6, 16], et a obtenu une preuve de correction et de complétude dans le cas monomorphe. L'approche prédicative, modulo quelques axiomes qui écartent la difficulté de traitement des schémas de types égaux modulo tex2html_wrap_inline631 -conversion, a permis d'obtenir une preuve de correction dans le cas général.