Précédent : Logiciels Remonter : Projet PROTHEO, Contraintes,
Déduction Automatique Suivant : Actions
industrielles
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.
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.
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 ).
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.
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].
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.
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.
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 -calcul et une théorie équationnelle
du premier ordre. La
-unification d'ordre
supérieur est définie comme l'unification modulo la relation
d'équivalence
engendrée par la
-conversion et
.
Nous avons montré comment réduire la
-unification
d'ordre supérieur à un problème d'unification du premier ordre
dans un mélange formé de
et d'une théorie
de substitutions explicites qui étend le
-calcul et intègre notamment la signature de
. 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
-unification
tout en considérant de nouvelles règles de transformation pour
gérer l'interaction entre
et
.
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.
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].
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.
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].
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 -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.
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.
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.
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.
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.
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].
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.
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].
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.
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.
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].
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.
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.
Participants : Claude Kirchner , Michaël Rusinowitch ,
Christelle Scharff , Laurent Vigneron
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].
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.
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.