Projet : PROTHEO

previous up next contents
Précédent : Contraintes Remonter : Résultats nouveaux Suivant : Démonstration automatique


Sous-sections


   
Réécriture et stratégies

 

Mots clés : réécriture, stratégie, calcul non déterministe, compilation, terminaison, modularité, réécriture concurrente .

Résumé :

Nous proposons un formalisme de règles et stratégies pour décrire différentes logiques et les exécuter directement à partir de leurs descriptions. Une partie importante de nos travaux concerne l'étude des stratégies de réécriture, à la fois du point de vue de leur spécification, de leurs propriétés et de leur utilisation dans les systèmes de déduction automatique. D'autres résultats portent sur la compilation de la réécriture non déterministe, un calcul de réécriture général, les propriétés modulaires des systèmes de réécriture et la complexité de certains problèmes de décision en réécriture.

Stratégies



Participants : Peter Borovanský, Adel Bouhoula, Horatiu Cirstea, Hubert Dubois, Bernhard Gramlich, Claude Kirchner, Hélène Kirchner, Michaël Rusinowitch.

Stratégies d'ELAN.

Le langage de stratégies d'ELAN [[29]] offre un petit nombre de primitives pour exprimer la composition séquentielle, l'itération, le choix déterministe ou non, sur des stratégies élémentaires représentées par les règles nommées d'ELAN. Ce langage a été généralisé dans la thèse de Peter Borovanský [[13]]. L'utilisateur peut décrire ses propres stratégies à l'aide de ces primitives, ou en introduisant de nouveaux opérateurs de stratégies et des règles pour les définir. Toutes ces constructions du langage sont typées dans un contexte multi-sorté. La sémantique du langage de stratégies proposé est basée sur la logique de réécriture. On enrichit une théorie de la logique de réécriture en une théorie de stratégies dans la même logique. Cette approche permet de créer une hiérarchie de théories dans laquelle il existe des stratégies qui contrôlent les dérivations d'autres stratégies. L'interpréteur de stratégies est décrit lui aussi en logique de réécriture et implanté par un programme ELAN. On obtient ainsi une méta-interprétation de l'opérateur d'application d'une stratégie sur un terme. Deux implantations du langage de stratégies ont été comparées. L'une utilise le méta-interpréteur, optimisé en utilisant des techniques d'évaluation partielle, l'autre, plus performante, est basée sur la compilation des stratégies.

Dans [[28]], nous formalisons les règles de réécriture et les stratégies par des fonctions qui s'appliquent à des termes grace à une opération d'application explicite, dont la sémantique est définie à nouveau par des règles de réécriture. Cette approche fournit une sémantique fonctionnelle du langage de stratégies d'ELAN.

Applications du langage de stratégies.

Nous avons utilisé ELAN pour implanter le prouveur de prédicat avec égalité décrit par J.R.Abrial [Abr96]. Les règles d'inférence du prouveur ont été codées par des règles de réécriture conditionnelles avec des affectations locales. L'application des règles d'inférence est guidée par une stratégie. Nous avons proposé deux approches pour définir cette stratégie et nous avons comparé les résultats de l'application de ces deux stratégies sur différents exemples. L'analyse des preuves obtenues permet d'observer l'influence de la stratégie sur le comportement du prouveur. La terminaison du prouveur est prouvée en utilisant un ordre de réduction induit par une interprétation polynomiale [[31]].

Outre cette application à la modélisation d'un prouveur, nous explorons l'application du langage de stratégies à la planification. Nous nous sommes intéressés à une approche particulière du calcul des situations afin de pouvoir générer un plan d'actions; nous avons alors proposé une sémantique basée sur la réécriture et utilisant le langage de stratégies. Nous avons ainsi montré comment coder situations et actions dans le but de construire le plan souhaité à l'aide du langage de stratégies d'ELAN. Afin d'illustrer notre approche, nous avons traité le cas d'un contrôleur d'ascenseur [[33]].

Citons enfin pour mémoire l'application mentionnée dans la section 6.1 à la résolution de problèmes de satisfaction de contraintes (CSPs) sur des domaines finis en utilisant des règles de réécriture et des stratégies [[15]].

Stratégies de SPIKE.

Le mode actuel de preuve dans SPIKE est automatisé et l'interaction avec l'utilisateur est réduite à l'introduction de lemmes durant le processus de preuve. Pour contrôler le processus de déduction et pour aider l'utilisateur à trouver des preuves, il est nécessaire d'offrir des mécanismes pour faciliter la manipulation de la preuve. Nous travaillons sur la spécification des paramètres d'application des règles d'inférence du prouveur au travers d'un langage de stratégies. Il est désormais possible de programmer les stratégies et de spécifier les schémas d'induction, au début ou bien en cours de preuve. En particulier, le but est de permettre à l'utilisateur d'interrompre une preuve pour choisir un autre type de contrôle du processus de déduction. Le langage de stratégies incluant de telles caractéristiques s'appuie sur l'expérience de l'équipe dans le développement d'ELAN.

Le $ \rho$-calcul - calcul de réécriture



Participants : Horatiu Cirstea, Claude Kirchner.

Nous avons proposé un nouveau calcul généralisant le $ \lambda$-calcul et la réécriture que nous avons appelé le $ \rho$-calcul [[47]]. Les objets de base du $ \rho$-calcul sont construits à partir d'une signature donnée, enrichie de l'opérateur d'abstraction "$ \to$" et de l'opérateur d'application "[]()". Le filtrage est utilisé pour lier les variables à ses valeurs actuelles et il est un paramètre fondamental du calcul. Le calcul général prend en compte des termes d'ordre supérieur et des théories équationnelles arbitraires, mais comme le filtrage y est en général indécidable, nous nous restreignons à des théories équationnelles du premier ordre. Un terme du $ \rho$-calcul contient toutes les règles de réécriture nécessaires pour son évaluation. Une autre caractéristique du calcul est la possibilité de manipuler le non déterminisme par le biais d'ensembles de résultats pour la réduction. L'ensemble vide représente l'échec de l'application d'une règle. Ce calcul permet de donner à ELAN une autre sémantique qui a l'avantage de s'étendre à l'ordre supérieur et peut ainsi prendre en compte des extensions du langage [[46]]. Nous avons aussi développé le $ \rho$$ \sigma$-calcul qui utilise un système de substitution explicite et qui généralise le $ \lambda$$ \sigma$-calcul.

Propriétés modulaires de la réécriture



Participants : Thomas Genet, Isabelle Gnaedig, Bernhard Gramlich, Hélène Kirchner.

Pour vérifier les propriétés fondamentales des systèmes de réécriture comme la terminaison et la confluence, l'analyse des aspects modulaires est importante. Le problème consiste à déterminer sous quelles conditions la combinaison de systèmes de réécriture hérite des propriétés des systèmes composants [[35]].

Le travail sur la preuve modulaire de la terminaison des systèmes de réécriture a été poursuivi. Nous avons proposé un mécanisme pour prouver la terminaison lorsque les règles de deux systèmes sont appliquées suivant une stratégie qui consiste à répéter le processus de normalisation par l'un puis l'autre des systèmes. Ce mécanisme est basé sur le calcul de l'ensemble des descendants par réécriture d'un ensemble de termes initiaux à l'aide d'automates d'arbres réguliers. Nous avons également appliqué ce mécanisme à la preuve de complétude suffisante, au test d'atteignabilité et à la preuve de non terminaison forte [[34]]. Une bibliothèque d'algorithmes sur les automates d'arbres implantée en ELAN est distribuée avec la dernière version d'ELAN.

Compilation du filtrage et de la réécriture non déterministe



Participants : Hélène Kirchner, Pierre-Etienne Moreau.

Le premier compilateur d'ELAN permettait une exécution efficace de la réécriture avec stratégies pour des programmes ne comportant pas d'opérateurs associatifs commutatifs. Dans [[39]], nous étudions la compilation de la normalisation modulo l'associativité et la commutativité (AC). Nous proposons plusieurs techniques pour la compilation du filtrage AC many-to-one, c'est-à-dire cherchant à filtrer vers un terme plusieurs membres gauches de règles commençant par le même symbole de fonction. La méthode de filtrage proposée est basée sur la construction d'un graphe biparti compact et l'utilisation d'automates de filtrage déterministes. Elle est conçue pour donner de bons résultats pour certaines classes de règles fréquemment rencontrées dans la pratique et en particulier dans les programmes ELAN déjà développés. Les règles n'appartenant pas à l'une de ces classes sont traitées par transformation de programme et appel à un algorithme de filtrage général, mais plus coûteux. Pour améliorer l'efficacité de la normalisation, plusieurs idées sont mises en oeuvre dans le compilateur : proposer une structure de termes partagée, détecter rapidement les cas d'échecs et les branches inutiles dans le filtrage, tirer parti autant que possible des cas déterministes où l'on n'a besoin que d'une seule solution. Les résultats expérimentaux rapportés dans [[39]] indiquent d'excellentes performances.

La compilation efficace du non déterminisme pose des problèmes difficiles de mise en oeuvre. Nous proposons une méthode originale pour gérer les points de choix et les échecs [[50]]. Cette méthode consiste à implanter une petite bibliothèque de fonctions écrites en assembleur. Ces quelques fonctions permettent de concevoir aisément des schémas de compilation pour des calculs non déterministes.

Complexité de problèmes de réécriture



Participants : Florent Jacquemard, Denis Lugiez, Michaël Rusinowitch, Rakesh Verma.

Nous avons commencé une étude des réductions polynomiales pour certains problèmes de décision en réécriture. Nous donnons pour la première fois un algorithme polynomial pour décider l'unicité de la forme normale pour les systèmes clos. Ensuite nous montrons l'indécidabilité des problèmes considérés pour la réécriture de mots en utilisant nos réductions. Finalement nous prouvons la décidabilité de la confluence de la réécriture pour les systèmes semi-Thue commutatifs. La confluence et la propriété d'unicité de la forme normale sont EXPSPACE-difficile pour ces mêmes systèmes [[43]].

La réductibilité inductive est une propriété de la réécriture, utilisée comme argument de réfutation pour les systèmes de déduction automatisant la récurrence comme SPIKE. Ce problème est l'un des rares à être décidable pour tout système de réécriture et de nombreux auteurs en ont étudié la complexité depuis 1987. Avec H. Comon, nous avions présenté lors de la conférence LICS'97 la première preuve d'EXPTIME-complétude pour ce problème. Cette preuve, basée sur des techniques d'automates d'arbres à contraintes, a par la suite été retravaillée et soumise en octobre 1998 à la revue Information and Computation.


previous up next contents
Précédent : Contraintes Remonter : Résultats nouveaux Suivant : Démonstration automatique