1 Forme résolue d’une conjonction à plat
Nous travaillerons sur des formules de la forme ϕ1∧ · · · ∧ ϕn, où les ϕisont de l’une des quatre
formes
vrai, faux, x =y, x =f u1. . . un,
avec x,yet les uides variables et fun symbole d’opération d’arité n. De telles formules seront dites
conjonctions à plat.
Définition 1 Une conjonction à plat est dite résolue si elle de la forme faux ou vrai ou
x1=t1∧ · · · ∧ xn=tn,(1)
où les xisont des variables distinctes, les tides termes, avec la restriction que l’ensemble des équations qui la
compose ne contienne pas un sous-ensemble non vide de la forme {y1=y2, y2=y3, . . . ,ym−1=ym}, les yi
étant des variables et y1et ymétant la même variable.
Du 3ième schém d’axiomes de la théorie Tdes arbres on déduit :
Propriete 1 Si ϕ(y,x)est une conjonction résolue à plat distincte de vrai et faux avec yle vecteur de ses
membres gauches et xle vecteur de ses varibles qui ne figurent pas comme membres gauches alors T|=
∀x∃!y ϕ(y,x).
2 Algorithme de résolution
L’algorithme qui suit permet de transformer toute conjonction à plat en une contrainte équiva-
lente sous forme résolue. Il consiste à appliquer sur la formule initiale et tant que cela est possible les
règles de réécriture qui suivent, en considérant que le connecteur ∧est associatif et commutatif.
Dans ces règles de réécriture on suppose que chaque variable xest numérotée par un entier na-
turel notés no(x).
1faux ∧q=⇒faux
2vrai ∧q=⇒q
3x=fu1..um∧x=gv1..vn=⇒faux
4x=fu1..un∧x=fv1..vn=⇒x=fu1..un∧u1=v1∧.. ∧un=vn
5y=x=⇒x=y
6x=x=⇒vrai
7x=fu1..un∧x=y=⇒y=fu1..un∧x=y
8x=z∧x=y=⇒y=z∧x=y
(2)
avec la condition que no(x)>no(y).
Propriete 2 (Terminaison) On ne peut appliquer qu’un nombre fini de réécritures.
Preuve On considère le quadruplet (n1,n2,n3,n4)où les nisont les entiers non négatifs suivants :
n1est le nombre d’occurences d’équations de la forme x=fu1..un,
n2est le nombre d’occurences de contraintes atomiques,
n3est la somme des no(x)pour toutes les occurrences de variables x,
n4est le nombre d’occurrences d’équations de la forme x=y, avec no(x)<no(y).
Après chaque application d’une règle le nouveau quadruplet (n0
1,n0
2,n0
3,n0
4)est lexicographiquement
inférieur au quadruplet (n1,n2,n3,n4), c’est-à-dire qu’il existe itel que n0
i< niet (n0
1, . . . ,n0
i−1) =
(n1, . . . ,ni−1). Ces ivalent 1 ou 2 pour la règle 1, valent 2 pour la règle 2, valent 1 pour les règles
3,4, valent 4 pour la règle 5 et valent 3 pour les règles 6,7,8. Les entiers niétant astreints à être non
négatifs, on en conclut que l’on ne pourra indéfiniment appliquer des règles.
1