previous up next contents
Précédent : Un environnement de Remonter : Sémantique et preuves Suivant : Étude d'un -calcul

Syntaxe abstraite d'ordre supérieur et types inductifs

Participants : Joëlle Despeyroux, André Hirschowitz

Mots clefs : langage fonctionnel, théorie des types La définition d'un type inductif fournit des schémas de récurrence et des principes d'induction qui permettent de faire des preuves générales sur des données de ce type. En particulier, on peut représenter la syntaxe d'un langage comme un type inductif et utiliser les principes associés pour faire des preuves sur la sémantique de ce langage. La syntaxe abstraite d'ordre supérieur étend la syntaxe de premier ordre en permettant de formaliser les lieurs et les abstractions des langages fonctionnels. Mais une syntaxe abstraite d'ordre supérieur, définie de manière naïve, ne forme pas un type inductif. En collaboration avec Amy Felty (ATT Bell Laboratories), nous avons défini une notion de syntaxe abstraite d'ordre supérieur restreint [9] qui permet d'utiliser à la fois la syntaxe d'ordre supérieur et les types inductifs. Dans cette approche, la syntaxe étant trop permissive, il est nécessaire de définir un prédicat décrivant les termes `légaux' sur lesquels on travaille. Il faut aussi spécifier une opération de substitution pour chaque langage étudié. Mais cette substitution n'utilise pas l'application `méta' du système utilisé.

Cette méthode a été utilisée pour spécifier les règles d'évaluation et de typage d'un petit langage fonctionnel et formaliser une preuve de correction du typage par rapport à l'évaluation pour ce langage. Cette preuve a été vérifiée mécaniquement en utilisant le système Coq.

Le travail futur sur ce thème est de vérifier la validité pratique de cette méthode pour des preuves de taille significative, comme la preuve du théorème de Church-Rosser pour le langage étudié et de formaliser l'adéquation des syntaxes d'ordre supérieur restreintes avec leurs équivalents à l'ordre un ou en LF.


previous up next contents
Précédent : Un environnement de Remonter : Sémantique et preuves Suivant : Étude d'un -calcul