• Aucun résultat trouvé

Unification, filtrage, unification équationnelle et filtrage équationnel 39

Dans le document Courtage sémantique de services de calcul (Page 52-55)

1.4 Conclusion

2.1.4 Unification, filtrage, unification équationnelle et filtrage équationnel 39

la requête (comparaison de deux termes), en tenant compte d’un certain nombre d’égalités, est l’unification équationnelle et le filtrage équationnel.

Les problèmes de filtrage et d’unification, simple ou modulo une théorie équation-nelle, avec ou sans type, appartiennent à une catégorie de problèmes qui ont été beaucoup

étudiés, car ils ont une place importante en informatique et notamment dans les assistants de preuve. Une bonne introduction à ces problèmes peut être trouvée dans [BS01].

2.1.4.1 L’unification

Le but de l’unification est de trouver une façon de rendre deux termes égaux en rem-plaçant certaines variables de ces deux termes.

Définition 2.1.23 (Unification)

Soientuetv, deux termes. Le problème d’unification est de savoir s’il existe une substitu-tionσ, telle queσ(u) =σ(v).

Un telσest appelé unificateur deuetv.

Exemple 2.1.5

Par exemple, si f est un symbole d’arité 2, a et b des symboles d’arité 0 et x et y des variables. Soient,u= f(a, x)etv =f(y, b), une solution au problème d’unification deu etvestσ ={x→b, y →a}:σ(u) =f(a, b) =σ(v).

Il s’agit ici d’unification syntaxique du premier ordre, car les deux termes doivent être égaux et seules les variables (et pas les fonctions) peuvent être substituées.

Théorème 2.1.2

Le problème d’unification, du premier ordre, de deux termes est décidable.

Définition 2.1.24

Une substitutionσest un mgu (most general unifier) deuetv, s’il est un unificateur deuet vet si pour toutθ, unificateur deuetv,σ≤θ.

Théorème 2.1.3 (mgus)

L’ensemble des mgus de deux termes peut être engendré à partir d’un unique mgu. Cela signifie que tous les mgus sont égaux modulo le renommage des variables.

De nombreux algorithmes ont été proposés pour résoudre le problème d’unification.

Il en existe en temps linéaire [MM82, PW76]. L’efficacité de l’algorithme proposé dans le second article est notamment lié à la représentation des termes sous forme de graphes acycliques orientés plutôt que sous forme d’arbre, ce qui permet de mutualiser le travail effectué sur les différents sous-termes identiques d’un même terme.

2.1.4.2 Le filtrage

Définition 2.1.25 (Filtrage)

Soientuetvdeux termes, le problème de filtrage est de trouverσ tel queσ(u) =v.σ est appelé un filtre deuetv.

Exemple 2.1.6

Par exemple, sif est un symbole d’arité 2,aetbdes symboles d’arité 0 etxune variable. Si u=f(a, x)etv=f(a, b), une solution au problème de filtrage deuetvestσ={x→b}: σ(u) =f(a, b) =v.

Siv ne contient pas de variable, les problèmes d’unification et de filtrage sont stric-tement identiques.

2.1.4.3 L’unification équationnelle

L’unification équationnelle se rapproche du problème d’unification mais au lieu de chercher à rendre les termesuetv égaux, nous cherchons à les rendre égaux modulo une congruence induite par une théorie équationnelle.

Définition 2.1.26 (E-unificateur)

SoientEune théorie équationnelle,uetvdeux termes,σest un E-unificateur deuetvsi et seulement siσ(u) =E σ(v).

Exemple 2.1.7

Par exemple, sif etg sont deux fonctions d’arité 2, a etb deux constantes, x ety deux variables et E = {f(a, b) = g(a, b)}. Un E-unificateur de u = f(a, x) etv = g(y, b)est σ={x→a, y→b}:σ(u) =f(a, b) =E g(a, b) =σ(v).

Théorème 2.1.4

La propriété de décidabilité n’est pas conservée dans le cas d’une théorie équationnelle quelconque.

Définition 2.1.27 (Substitution plus générale moduloE et surV)

SoientEune théorie équationnelle,V un ensemble de variables, une substitution σest plus générale moduloE et surV queθssi il existe une substitutionδtelle que∀x∈V, θ(x) =E δ(σ(x)).

Théorème 2.1.5

La propriété de l’unicité du mgu n’est plus valide. Mais lorsqu’il sera fait référence à un ensemble complet d’E-unificateurs, c’est l’ensemble des mgus qui sera considéré.

Théorème 2.1.6

L’ensemble minimal complet d’E-unificateurs peut ne pas exister et s’il existe, il peut être infini.

Du fait de la perte de la décidabilité et de l’unicité du mgu dans le cas général, de nombreux travaux ont été réalisés dans des théories particulières : associative [Mak77, Jaf90, Sch92], commutative [Sie79], distributive [AT85, SS96], associative et commutative [Dom91], . . .

Des travaux ont également été réalisés pour pouvoir combiner les algorithmes de dif-férentes théories [BS96]. La principale restriction de ces algorithmes est qu’ils nécessitent des théories sur des symboles disjoints. Cela limite donc les cas où ces techniques peuvent être utilisées.

2.1.4.4 Le filtrage équationnel

De la même façon que pour l’unification, où il existe l’unification équationnelle, il existe le problème de filtrage modulo une théorie équationnelle ou filtrage équationnel, aussi appelé E-matching.

Définition 2.1.28 (filtrage équationnel)

Le problème de filtrage équationnel de deux termesuetva une solution si et seulement si il existeσtel queσ(u) =E v.

Exemple 2.1.8

Par exemple, sif etgsont deux fonctions d’arité 2,aetbdeux constantes,xune variable et E ={f(a, b) =g(a, b)}. Une solution au problème de filtrage équationnel deu=f(a, x) etv =g(a, b)estσ ={x→b}:σ(u) =f(a, b) =E g(a, b) =v.

Comme pour l’unification équationnelle, dans le cadre d’une théorie équationnelle quelconque, il n’y a pas forcément d’existence d’un ensemble minimal de filtres [FH86].

Là encore des travaux ont été réalisés dans le cas de théories particulières. Par exemple [Con04] pour une théorie associative et commutative, [MD96] pour des systèmes de réécri-ture ou [DMS92] pour des systèmes convergents.

2.1.4.5 Et les types ?

Tous ces problèmes existent également dans une version typée. L’ajout de types implique des contraintes supplémentaires sur les substitutions calculées, car les variables doivent être remplacées par des termes avec des « types compatibles ».

Parmi les travaux réalisés, citons [SNGM89, MGS89]. Ces travaux se placent dans le cadre de types ayant des liens d’héritage. Pour intégrer les types à l’unification, il y a deux solutions : soit réaliser une phase d’unification simple sans tenir compte des types, suivie par une phase de typage, soit intégrer le typage à chaque étape de l’unification. Cette seconde solution est, en général, plus efficace car elle permet de détecter les erreurs de types plus tôt. Cependant, elle peut entraîner la duplication du travail pour tous les types possibles.

Dans [Kir88], Claude Kirchner étudie l’unification équationnelle dans le cas d’al-gèbres avec types qui ont des liens d’héritage. Dans le cadre de théories régulières (chaque terme à un unique plus petit type) et qui conservent les types (tous les termes égaux ont le même plus petit type), les règles de l’unification standard sont étendues dans le cas typé.

Nous avons justifié dans la section 1.1 que nous devions pouvoir rechercher des ser-vices quelle que soit la théorie équationnelle définie. Il n’est donc pas possible de s’appuyer sur les résultats décidables dédiés à des théories particulières. Nous avons donc choisi de nous appuyer sur l’algorithme général proposé par Gallier et Snyder dans [GS89]. En effet, nous allons voir dans la section suivante que la définition de notre ensemble de solutions nous ramène à un problème de filtrage équationnel entre les services et la requête.

2.2 Représentation du domaine, des services et de la requête

Nous venons de détailler plus précisément ce qu’est une spécification algébrique.

Nous avons choisi de représenter le domaine grâce à une telle spécification. Les services et la requête sont alors exprimés grâce à des termes de l’algèbre associée à la signature.

Dans le document Courtage sémantique de services de calcul (Page 52-55)