previous up next contents
Précédent : Combinaison et coopération Remonter : Contraintes Suivant : Contraintes associatives-commutatives

Contraintes d'ordre supérieur

Participants : Claude Kirchner, Denis Lugiez

L'unification d'ordre supérieur consiste à unifier modulo la -conversion. Mais ce n'est pas de l'unification équationnelle modulo la -conversion car les substitutions doivent éviter les captures. Les méthodes (comme la surréduction) permettant d'unifier modulo une théorie équationnelle sont basées sur l'opération de greffe (qui consiste à substituer sans renommer) et ne peuvent donc pas s'appliquer directement à l'unification d'ordre supérieur. En collaboration avec Gilles Dowek du projet COQ et Thérèse Hardin du projet PARA, nous avons réduit l'unification d'ordre supérieur à l'unification du premier ordre modulo une théorie équationnelle appropriée. Ces résultats ont été présentés à LICS95 [23] et sont détaillés dans [43]. Ils ont également été implantés en ELAN, un cadre logique décrit ci-après. Nous travaillons maintenant à l'étude de l'unification sur les patterns qui constituent une classe où l'unification d'ordre supérieur à la propriété d'être unitaire.

L'ordre supérieur, en lieu et place du premier ordre, est un moyen d'étendre l'expressivité des langages de spécification à la manière de ce qui a été déjà réalisé pour Prolog avec -Prolog. Dans un tel cadre les programmes sont des règles de réécriture qui contiennent des -termes. Pour l'application à la spécification, une question essentielle est de savoir si une fonction définie par un ensemble de telles règles est définie partout (c'est la notion de complétude suffisante) et il est essentiel d'avoir des outils permettant de décider cette propriété ou tout au moins une approximation opérationnelle. Cela revient à résoudre des formules logiques interprétées dans l'ensemble des termes clos, connues sous le nom de problèmes de complément. Nous avons poursuivi l'étude de ces formules commencée en 1994 en précisant ce qu'on pouvait obtenir dans les cas intéressants qui sont l'ordre 2 et la classe des termes appelés patterns. En particulier nous avons montré que le problème de complément d'ordre 2 était indécidable à l'aide d'un codage par les machines à compteurs. Nous avons donné des conditions nécessaires pour que ce problème soit décidable et nous avons donné une preuve complète de la décidabilité de n'importe quelle formule quand les termes qu'elle contient ne sont que des patterns. Les idées principales de ces travaux sont décrites dans l'habilitation de Denis Lugiez [2], présentée en janvier 95 et une version plus complète se trouve dans [13]. De plus, nous avons étudié certains problèmes de complément sur des types polymorphes et donné dans ce cadre un algorithme de test de complétude et de compilation du filtrage pour le cas linéaire gauche [32].


previous up next contents
Précédent : Combinaison et coopération Remonter : Contraintes Suivant : Contraintes associatives-commutatives