Projet Protheo

previous up next contents
Précédent : Logiciels Remonter : Projet PROTHEO, Contraintes, Déduction Automatique Suivant : Actions industrielles



Résultats nouveaux

Résumé : Parmi les résultats importants obtenus dans le projet en 1997, mentionnons :
- l'utilisation des automates d'arbres dans deux domaines : d'une part, les preuves par récurrence et le test de la complétude suffisante des spécifications équationnelles avec relation d'appartenance ; d'autre part, les preuves de terminaison de la stratégie de réduction modulaire,
- la proposition d'un langage de stratégies pour guider les inférences ou les calculs, avec des primitives de stratégies de choix déterministe ou non,
- la combinaison de méthodes complètes et incomplètes dans la résolution de contraintes symboliques et interprétées.

Contraintes

  Mots-clés : problèmes de satisfaction de contraintes, contraintes sur les entiers, contraintes d'ordre, combinaison, unification d'ordre supérieur


Résumé : Dans le domaine de la résolution de contraintes, nos travaux ont porté cette année sur la modélisation des problèmes de satisfaction de contraintes, la résolution de contraintes sur les entiers, la combinaison de résolveurs de contraintes. Des travaux antérieurs concernant la résolution de contraintes d'ordre et de contraintes ensemblistes se sont poursuivis.

Satisfaction de contraintes



Participants : Carlos Castro , Claude Kirchner


Nous avons formalisé les processus de résolution de contraintes et la manipulation de contraintes par des systèmes d'inférence, en faisant explicitement la distinction entre les règles de déduction et le contrôle. Nous associons les inférences aux règles de réécriture et le contrôle aux stratégies qui établissent l'ordre d'application des inférences [25,49]. Ce cadre nous permet de décrire la manipulation de contraintes d'une manière abstraite, de prototyper de nouvelles heuristiques en ne modifiant pratiquement que le choix des règles, de prouver la terminaison facilement et de combiner la résolution de contraintes avec d'autres systèmes de calcul. En utilisant ces idées, nous avons proposé un nouvel algorithme pour la vérification de consistance locale dans des problèmes de satisfaction de contraintes utilisant des contraintes disjonctives [48]. Ce travail débute la définition d'un formalisme permettant d'appliquer les techniques développées dans le domaine de la déduction automatique à la résolution de contraintes. Pour valider notre approche, nous avons implanté un prototype dans le système ELAN (voir Section [*]).

Contraintes sur les entiers



Participants : Farid Ajili , Eric Domenjoud , Denis Lugiez , Claude Kirchner


Contraintes Diophantiennes linéaires.

Le succès des techniques de propagation de contraintes nous a conduits à les intégrer dans le résolveur complet d'équations Diophantiennes que nous avons développé [13], dans le but de réduire l'espace de recherche. Ce travail [40], réalisé en collaboration avec H. C. R. Lock (Université de Karlsruhe, Allemagne), consiste à enrichir un noeud de l'espace de recherche des solutions par des informations locales et partielles. Un système de contraintes est attaché à un noeud, et construit de façon incrémentale : chaque noeud hérite des contraintes de son père dans l'arbre de recherche, auxquelles s'ajoutent celles qui caractérisent le nouvel état de la recherche à ce noeud. Tout noeud appelle un algorithme de propagation de contraintes pour simplifier son système de contraintes. Cette notion de système de contraintes local permet de représenter l'espace de recherche qui reste à explorer à partir du noeud considéré, et d'anticiper le futur de la recherche. Ceci a pour effet de rendre possible la prise de décisions locales au niveau du noeud [41]. En particulier, un noeud peut anticiper les échecs de tous ses fils. La méthode permet d'intégrer des heuristiques de recherche de solutions en choisissant à chaque noeud l'heuristique qui lui convient, et d'exploiter l'historique de la recherche. Le résolveur décrit dans [13] ainsi étendu est toujours complet et offre de plus la possibilité d'avoir des variables à domaines infinis (non majorées). La méthode a été implantée en Java. Son expérimentation montre qu'elle est largement plus efficace que le résolveur initial.

Arithmétique de Presburger.

Dans le but d'intégrer des procédures de décision dans les démonstrateurs que nous développons, nous avons réalisé en Objective CAML un module de réduction et de décision de formules de l'arithmétique de Presburger. Son utilisation dans un démonstrateur permet des preuves plus efficaces en évitant, sur le domaine des entiers, d'avoir recours à un mécanisme général de preuve. Le module est conçu pour permettre l'intégration et la coopération de plusieurs algorithmes de décisions. A l'heure actuelle, l'algorithme SUP-INF et l'algorithme d'élimination de quantificateurs de Cooper sont intégrés. Nous avons également étudié et implanté plusieurs simplifications de la méthode de Cooper. Ce travail a été fait dans le cadre du stage ENSIMAG de Florence Rogier [37].

Combinaison de résolveurs de contraintes



Participant : Farid Ajili , Claude Kirchner , Christophe Ringeissen


Contraintes symboliques et interprétées.

Nous avons proposé et étudié dans [19] un formalisme de combinaison d'un langage de contraintes symboliques, telles que des équations sur des termes, avec un langage de contraintes prédéfinies sur un domaine numérique comme les entiers positifs. Le cas où les deux langages interfèrent par des fonctions qui sont des homomorphismes des structures sous-jacentes (par exemple la fonction qui retourne la taille d'un terme) a été résolu de façon modulaire, en réutilisant deux résolveurs qui coopèrent par l'intermédiaire d'une interface de propagation. Le rôle de cette interface est de maintenir la consistance entre les calculs des deux résolveurs et par suite, de leur permettre de collaborer pour réduire une contrainte combinée en une forme dite quasi-résolue, dont la satisfaisabilité est simple à tester.

Combinaison de structures libres.

Les algorithmes de combinaison développés pour des mélanges de théories ou des amalgamations de structures libres se caractérisent en général par un fort non-déterminisme qui les rendent difficiles à intégrer dans des systèmes de déduction. Afin de réduire ce non-déterminisme, nous construisons une amalgamation régulière et non-effondrante, ce qui consiste à plonger les sous-structures dans une structure multi-sortée ayant une sorte pour chaque sous-structure, plus une sorte mixte pour représenter les éléments hétérogènes. Nous obtenons ainsi une notion d'égalité plus facile à appréhender que dans le cas général. La simplification de problèmes équationnels mixtes peut se faire par décomposition en sous-problèmes purs, pour lesquels il est ensuite possible de décider de l'existence d'une solution ou de calculer l'ensemble des solutions [61].

Nous avons par ailleurs implanté en ELAN (voir Section [*]) différents algorithmes de combinaison pour la résolution de contraintes équationnelles. Ces algorithmes, qui s'expriment par des règles de transformation et font appel à des résolveurs développés indépendamment, sont l'occasion de valider les possibilités offertes par ELAN pour communiquer avec des processus externes [29]. L'algorithme de combinaison pour l'amalgamation régulière non-effondrante décrite ci-dessus permet de combiner des résolveurs, implantés en C ou ELAN, dans la théorie vide, les théories commutatives, les théories associatives commutatives, dans les Booléens et plus généralement les algèbres primales.

Unification d'ordre supérieur.

Notre étude de la description de l'unification d'ordre supérieur par une théorie équationnelle du premier ordre [15] s'est poursuivie cette année dans la perspective de mélanger le $\lambda$-calcul et une théorie équationnelle $E$ du premier ordre. La $E$-unification d'ordre supérieur est définie comme l'unification modulo la relation d'équivalence $=_{\beta\eta \cup E}$ engendrée par la $\beta\eta$-conversion et $E$. Nous avons montré comment réduire la $E$-unification d'ordre supérieur à un problème d'unification du premier ordre dans un mélange formé de $E$ et d'une théorie de substitutions explicites qui étend le $\lambda\sigma$-calcul et intègre notamment la signature de $E$. Il s'agit donc d'un mélange de théories équationnelles non-disjointes pour lequel les résultats connus sur la combinaison des procédures d'unification ne s'appliquent pas. C'est pourquoi nous avons proposé une nouvelle procédure complète d'unification [27] qui reprend celle développée pour la $\lambda\sigma$-unification tout en considérant de nouvelles règles de transformation pour gérer l'interaction entre $E$ et $\lambda\sigma$.

Contraintes d'ordre



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


Dans le but d'automatiser les preuves de terminaison de systèmes de réécriture, nous nous intéressons à la résolution de contraintes d'ordre. L'algorithme de résolution de contraintes d'ordre GPO (General Path Ordering) et le prototype que nous avons développés l'an dernier ont donné lieu à un article présenté à la conférence CAAP'97 [26,32]. Afin de guider l'utilisateur dans les preuves semi-automatiques, nous avons cette année ajouté au prototype une interface avec le logiciel de visualisation de graphes Cgraph de F. Bertault du projet Eureca. Le prototype a été testé sur des spécifications algébriques conditionnelles de tailles conséquentes, utilisées par SPIKE pour réaliser des preuves de propriétés par récurrence.

Contraintes ensemblistes



Participant : Denis Lugiez


La divergence de certaines preuves nous a conduit à développer en collaboration avec M. Hermann du projet Eureca, des techniques de schématisations récurrentes pour représenter des ensembles d'instances closes (i.e., sans variables) de termes ou de formules. Nous avons fait une étude comparative de plusieurs opérations importantes dans les preuves, comme le filtrage et la généralisation. Contrairement au cas usuel pour lequel filtrage et inclusion des ensembles d'instances closes sont équivalents, nous avons montré que cela est faux pour les schématisations récurrentes. Nous avons aussi regardé le problème de la généralisation et proposé plusieurs définitions possibles, l'une sémantique en considérant les ensembles d'instances closes et l'autre syntaxique en considérant des substitutions de filtrage. Nous avons montré que, même avec cette dernière définition, il n'y a pas unicité de la généralisation des termes usuels du premier ordre avec des schématisations récurrentes. Par ailleurs nous avons donné un algorithme de calcul des généralisations de deux termes et un algorithme raffiné pour la généralisation de termes du premier ordre avec des schématisations [20].

Réécriture et stratégies

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


Résumé : Une partie importante de nos travaux a porté cette année sur 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 concernent les propriétés modulaires des systèmes de réécriture, la compilation de la réécriture dans les théories associatives et commutatives, la complexité de certains problèmes de décision en réécriture. Les travaux entrepris sur l'étude de la réécriture concurrente se sont concrétisés par une thèse.

Stratégies



Participants : Iliès Alouini , Peter Borovanský , Adel Bouhoula , Horatiu Cirstea , Bernhard Gramlich , Claude Kirchner , Hélène Kirchner , Michaël Rusinowitch


Différents aspects liés aux stratégies pour le calcul et la déduction ont été abordés lors d'un workshop de CADE-14 [53].

Stratégies d'ELAN.

Le langage de stratégies d'ELAN 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 qui sont à la base les règles nommées d'ELAN. L'utilisateur décrit 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. Le langage et l'interpréteur de stratégies sont décrits dans [44,22]. L'intérêt du langage de stratégies est illustré dans [44] par deux exemples : une stratégie gagnante pour le jeu de tic-tac-toe, et une stratégie permettant de trouver la sortie d'un labyrinthe. Des stratégies de normalisation pour l'évaluation du $\lambda$-calcul sont également décrites dans [22].

L'interprétation des stratégies est décrite en logique de réécriture et implantée 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. Une technique d'optimisation basée sur l'évaluation partielle est proposée dans [22]. Appliquée au méta-interpréteur de stratégies, elle permet une amélioration des performances de l'interpréteur d'un facteur 2 à 5.

Modélisation d'un prouveur et de ses 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é représentées avec des règles de réécriture conditionnelles avec des affectations locales [50]. La sémantique d'ELAN qui est basée sur une logique de réécriture multi-sortée nous a permis d'exprimer ces règles de manière naturelle. En utilisant la possibilité de déclarer des opérateurs associatifs commutatifs, nous avons éliminé certaines règles redondantes décrivant ces propriétés.

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.

En utilisant des méthodes classiques de réécriture, il est possible de prouver des propriétés abstraites des règles de réécriture comme la terminaison et la confluence. Pour prouver la terminaison du prouveur de propositions, nous avons utilisé un ordre de réduction induit par une interprétation polynomiale.

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 actuellement sur la spécification des paramètres d'application des règles d'inférence du prouveur par un langage de stratégie et sur une meilleure représentation de l'arbre de preuve engendré. 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. Ces mécanismes d'intervention autorisent la spécification manuelle d'une inférence et des retours en arrière sélectifs. Le langage de stratégies incluant de telles caractéristiques est en cours d'implantation. Il s'appuie sur l'expérience de l'équipe dans le développement d'ELAN. L'étude de critères pour suspendre une tentative de preuve automatique et interagir avec l'utilisateur est en cours.

Par ailleurs, nous avons étudié [55] comment concevoir des démonstrateurs par récurrence utilisant des stratégies pour guider la preuve.

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



Participant : 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.

Confluence et terminaison.

Une étude précise des réductions effondrantes dans les systèmes combinés a conduit à de nouveaux critères suffisants pour la préservation de la terminaison [56]. Nous avons introduit et analysé deux propriétés intéressantes pour les réductions effondrantes qui sont relatives à la (non-)linéarité et aux notions de confluence et unicité restreinte. Ces nouvelles propriétés sont non-modulaires en général mais modulaires dans le cas particulier des systèmes linéaires à gauche. Une synthèse de l'ensemble des propriétés de modularité connues ou nouvellement acquises dans le domaine des spécifications algébriques et de la réécriture est présentée dans [54].

La normalisation des membres droits des règles est une optimisation tout-à-fait naturelle pour les systèmes complets (confluents et terminants) ou semi-complets (confluents et faiblement terminants). Pour les systèmes complets, cette normalisation droite est connue pour préserver toutes les propriétés significatives. De façon surprenante, il apparait que ni la confluence ni la faible terminaison ne sont préservées par normalisation droite des systèmes semi-complets. Un contre-exemple simple ainsi que des conditions suffisantes de préservation sont présentés dans [57,34], ce qui répond partiellement à un problème ouvert en théorie de la réécriture.

Terminaison de la stratégie de réduction modulaire par calcul d'automates d'arbres.

La modularité de la terminaison des systèmes de réécriture impose des conditions souvent très restrictives. Nous étudions le cas où les règles de deux systèmes sont appliquées suivant une stratégie de réduction dite modulaire, qui consiste à répéter le processus de normalisation par l'un puis l'autre des systèmes. La terminaison est assurée lorsque les deux systèmes partagent uniquement des symboles constructeurs, mais ne l'est déjà plus pour une forme d'union hiérarchique où les fonctions d'un module sont construites grâce aux fonctions définies dans un module situé plus bas dans la hiérarchie. Nous avons proposé une condition suffisante permettant d'assurer la terminaison de la stratégie modulaire. Elle est basée sur le calcul de l'ensemble des descendants d'un ensemble de termes initiaux, i.e. l'ensemble de tous les termes résultant de la réécriture des termes initiaux, en un nombre quelconque de pas. Mais l'appartenance d'un terme à l'ensemble des descendants n'est décidable que dans des cas très restreints, assez peu intéressants en preuve de terminaison. C'est pourquoi nous avons choisi de définir une approximation - un sur-ensemble calculable de l'ensemble des descendants - suffisamment fine pour éventuellement permettre de prouver la terminaison de la stratégie de réduction modulaire. Le calcul de cette approximation est basé sur la résolution de contraintes ensemblistes sur des langages réguliers d'arbres (ou de termes), ainsi que sur une forme de réécriture d'automates d'arbres originale schématisant la réécriture de langages réguliers d'arbres. Afin de confirmer l'intérêt pratique de cette approximation pour vérifier automatiquement la terminaison, mais aussi d'autres propriétés comme la complétude suffisante, nous avons implanté un prototype en ELAN comprenant une bibliothèque d'algorithmes sur les automates d'arbres et la réécriture sur les automates, tous deux nécessaires au calcul de l'approximation [33,52,51].

Compilation du filtrage et de la réécriture associative-commutative



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


Le premier compilateur d'ELAN, décrit dans [Vit96], permet une exécution efficace de la réécriture avec stratégies pour des programmes ne comportant pas d'opérateurs associatifs commutatifs. Dans [28,36], 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, i.e. 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 bi-partite compact. Elle est conçue pour marcher très efficacement pour certaines classes de règles fréquemment rencontrées 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 premiers résultats expérimentaux rapportés dans [36] indiquent d'excellentes performances.

Complexité de problèmes de réécriture



Participants : 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 [39].

Réécriture concurrente



Participants : Iliès Alouini , Claude Kirchner


La thèse d'Iliès Alouini [11] est consacrée à la définition et l'implantation d'un modèle de réécriture conditionnelle concurrente sur des machines parallèles à mémoire distribuée. L'approche consiste à implanter le parallélisme de données que l'on rencontre dans les structures de termes. La réécriture concurrente est l'application simultanée de plusieurs règles sur un même terme. Dans un premier temps, le modèle de calcul est formalisé dans le cadre de la logique de réécriture de J. Meseguer. Pour étendre ce modèle aux règles conditionnelles, nous définissons ensuite une transformation d'un système de réécriture conditionnelle en un système de réécriture non conditionnelle.

Nous détaillons notre choix d'implantation du modèle de calcul et nous décrivons le passage du modèle abstrait de la réécriture concurrente conditionnelle à un modèle réel implantable sur des machines parallèles à mémoire distribuée. Le modèle d'implantation est basé sur la réécriture de termes représentés par des graphes particuliers appelés jungles. Un mécanisme fondé sur des échanges asynchrones de messages permet de réaliser l'opération de réécriture. Nous proposons un algorithme de glanage concurrent opérant sur les noeuds du graphe à réduire. Le logiciel RECO met en oeuvre directement le modèle opérationnel de la réécriture conditionnelle concurrente en utilisant le standard MPI ou la bibliothèque PVM pour le passage des messages entre processus. Pour valider et expérimenter notre modèle de calcul concurrent, différents tests de calculs parallèles de formes normales de termes ont été réalisés.

Démonstration automatique

  Mots-clés : déduction, preuves par récurrence, preuves équationnelles, propriété observable, procédures de décision, procédure de complétion, schématisation


Résumé : Dans le domaine de la démonstration automatique, nos travaux ont porté cette année sur les preuves par récurrence en logique équationnelle avec relation d'appartenance, les preuves de propriétés observables, et l'intégration de procédures de décision dans nos démonstrateurs. Dans la lignée de travaux précédents, nous avons obtenu également des résultats nouveaux sur les preuves dans les théories équationnelles et leur schématisation en cas de divergence.

Preuves en logique équationnelle avec relation d'appartenance



Participant : Adel Bouhoula , Claude Kirchner , Hélène Kirchner


La notion de typage apporte aux langages de programmation et aux preuves plus d'expressivité et d'efficacité. Dans les spécifications formelles algébriques, l'introduction d'une relation d'ordre sur l'ensemble des sortes permet de traiter certaines fonctions partielles et certains cas d'erreurs, mais pose des problèmes d'interaction avec les égalités de la spécification. Une première approche de ce problème est décrite dans [16]. Cette année, la logique équationnelle avec relation d'appartenance [23] a été formalisée en collaboration avec J.-P. Jouannaud (LRI, Université Paris Sud) et J. Meseguer (SRI International, USA). Ce cadre permet l'utilisation des sous-sortes et la surcharge d'opérateurs, et étend, d'une manière conservative, la logique équationnelle avec sortes ordonnées proposée par J. Goguen en 1970 ainsi que la logique équationnelle partielle. Nous avons étudié la sémantique opérationnelle de ce cadre logique ainsi que les techniques de complétion, de complétude suffisante et de paramétrisation.

En ce qui concerne les preuves par récurrence, la plupart des démonstrateurs considèrent des spécifications suffisamment complètes sur des constructeurs libres, i.e., sans relations équationnelles entre eux. Le système SPIKE n'interdit pas l'utilisation de spécifications avec relations entre les constructeurs, mais dans ce cas la complétude réfutationnelle de la procédure de preuve par récurrence n'est plus garantie et l'efficacité du prouveur est très limitée en pratique. Toujours dans le cadre de la logique des clauses de Horn avec égalité et relation d'appartenance, une nouvelle méthode de test de complétude suffisante et de preuve par récurrence a été proposée, en collaboration avec J.-P. Jouannaud. En effet, si les constructeurs satisfont des relations équationnelles entre eux, comme dans le cas des entiers relatifs, l'ensemble des termes constructeurs sans variables est reconnaissable par un automate [Com89]. Cet automate permet de construire une autre spécification dans laquelle les constructeurs deviennent libres dans de nouvelles sous-sortes associées aux états de l'automate. Nous avons testé cette méthode sur quelques exemples qui ont mis en évidence la simplicité des preuves obtenues [24,45].

Preuves de propriétés observables



Participants : Narjès Berregeb , Adel Bouhoula , Michaël Rusinowitch


Un programme est considéré correct s'il valide toutes les propriétés requises par la spécification. Cependant, bien qu'il existe des différences entre les propriétés énoncées par la spécification et celles vérifiées par le programme, celui-ci peut être considéré correct si ces différences ne sont pas observables, c'est-à-dire que son comportement externe produit des résultats corrects par rapport à la spécification. Ce concept d'observabilité s'est avéré fondamental dans les méthodes de validation formelle, puisque pour prouver la correction d'un programme par rapport à une spécification, il est souvent essentiel de faire abstraction de certains détails d'implantation et de considérer seulement le comportement observable du programme. Bien qu'un grand nombre de travaux aient été consacrés aux aspects sémantiques de l'observabilité, il existe peu d'études sur les techniques de preuves et encore moins d'implantations. Nous avons développé une nouvelle approche pour intégrer la méthode de Context Induction de Hennicker [Hen91] dans le cadre de la récurrence avec ensembles test [30,12,43]. L'aspect le plus original de notre technique est la notion de contexte critique, analogue à celle d'ensemble test, qui permet de schématiser l'ensemble des contextes possibles d'un terme. Les premières expérimentations ont donné des résultats prometteurs.

Intégration de procédures de décision



Participants : Denis Lugiez , Michaël Rusinowitch , Sorin Stratulat


Dans de nombreux cas, les systèmes que nous modélisons afin de réaliser des preuves de propriétés font intervenir des domaines interprétés (arithmétique, listes, ensembles...). Nous voulons par exemple montrer que les spécifications de ces systèmes en SPIKE sont complètes. Si cela n'est pas difficile pour des règles de réécriture simples, ça le devient dès qu'on ajoute des domaines interprétés.

Dans la lignée de [LM94], nous avons défini une classe d'automates d'arbres qui permet de traiter des définitions faisant intervenir des multi-ensembles et de l'arithmétique linéaire. La classe ne permet pas de couvrir toutes les définitions mais autorise des cas de non-linéarité intéressants en pratique. Le résultat de décision du vide de ces automates dans le cas multi-ensemble repose sur une preuve complexe utilisant fortement les ensembles semi-linéaires d'entiers. Bien que la complexité théorique de l'algorithme obtenu soit très élevée, celui-ci peut-être grandement amélioré d'une part, et d'autre part les définitions sur lesquelles on travaille sont de petite taille [58].

Nous avons développé dans SPIKE une approche pour intégrer des procédures de décision. Les détections de redondances ont été étendues pour prendre en compte des théories spécifiques et les opérateurs prédéfinis. Afin de valider cette approche, nous avons prouvé la correction d'un algorithme d'élection : l'algorithme MJRTY [BM91] de Boyer et Moore. Celui-ci a déjà été démontré avec Nuprl et PVS. En simulant un module d'arithmétique linéaire, notre preuve [38] ne nécessite qu'une unique intervention pour intercaler un lemme (également utilisé par Nuprl et PVS).

D'autre part un module de décision pour l'arithmétique de Presburger a été développé en Objective CAML [37]. Nous comptons l'interfacer prochainement avec SPIKE. Les prochaines étapes sont la construction de schémas d'induction pour des théories arithmétiques et la mise au point d'un algorithme pour la combinaison de procédures de décision pour des domaines différents.

Preuves dans les théories équationnelles



Participants : Claude Kirchner , Michaël Rusinowitch , Christelle Scharff , Laurent Vigneron


Congruences dans les espaces topologiques.

En collaboration avec A. Wasilewska (Stony Brook University, New York), nous avons utilisé le système da T ac pour étudier des algèbres modélisant des logiques non classiques [Vig96] [62] utilisées en base de données et en fouille de données pour des problèmes de classification d'informations incomplètes ou incertaines.
Nous avons étudié deux types d'algèbres : des algèbres modales et des algèbres approximantes. Les premières sont des algèbres topologiques Booléennes, les secondes des algèbres topologiques quasi-Booléennes. L'étude de ces deux types d'algèbres avec da T ac a permis d'engendrer plusieurs propriétés nouvelles intéressantes. Nous avons également comparé les différentes algèbres afin de mettre en valeur les propriétés particulières de chacune.
Enfin, nous nous sommes intéressés à la notion de congruence dans les espaces topologiques. Nous avons montré l'existence d'une congruence sur certains espaces topologiques et l'avons construite, puis nous avons démontré avec da T ac que l'espace quotienté par cette congruence est modélisé par une algèbre topologique quasi-Booléenne [63].

Simplification et complétion basiques.

La complétion basique est une procédure de saturation utilisant des contraintes sur les termes pour formaliser la déduction de nouvelles formules en évitant de calculer explicitement des ensembles complets d'unificateurs. Les techniques de simplification sont cruciales en complétion, mais elles se combinent mal avec ces contraintes. R. Nieuwenhuis et A. Rubio ont proposé une technique appelée simplification basique, qui combinée à la complétion basique est complète. Si les conditions d'application de la simplification basique ne sont pas satisfaites, soit on ne simplifie pas, soit on applique la solution de la contrainte à l'équation avant de simplifier cette dernière. La première solution n'est pas satisfaisante car elle n'autorise pas assez de simplifications. L'autre solution va à l'encontre des avantages de la complétion basique. Dans la lignée de nos travaux précédents sur les graphes SOUR [18], nous avons développé et prouvé la complétude d'une nouvelle stratégie de simplification pour la complétion basique appelée simplification E-cycle [59,60]. Cette technique autorise strictement plus de simplifications que la simplification basique. Intuitivement, une équation ne peut pas simplifier un de ses ancêtres obtenu durant le processus de complétion. Durant la complétion, un graphe de dépendance est construit pour déterminer les ancêtres et un cycle particulier de ce graphe est appelé E-cycle. La complétion basique avec simplification E-cycle est en cours d'implantation en ELAN. Le prototype nous permettra de comparer précisément le nombre de simplifications basiques par rapport au nombre de simplifications E-cycle sur différents exemples.

Complétion ordonnée.

La réécriture ordonnée permet de résoudre certains problèmes d'orientation des systèmes de réécriture comme ceux causés par la commutativité. Au lieu d'orienter une équation de gauche à droite ou vice-versa, l'orientation est vérifiée sur les instances de cette équation au moment où elle est appliquée. La réécriture ordonnée est bien-fondée par définition. Néanmoins la décision de la confluence de cette relation est un problème ouvert. Nous avons démontré [31] avec H. Comon (LSV Cachan) et P. Narendran (SUNY Albany) que pour les systèmes orientés par un ordre LPO (Lexicographic Path Ordering) la confluence est décidable. Par contre la confluence des systèmes avec contraintes d'ordre est indécidable. La réductibilité close est également indécidable.



previous up next contents Précédent : Logiciels Remonter : Projet PROTHEO, Contraintes, Déduction Automatique Suivant : Actions industrielles