82
3.7 R´esolution en logique du premier ordre
3.7.1 Motivation
Reprenons les explications donn´ees au d´ebut du paragraphe 3.6.
Un premier essai de transf´erer la r´esolution propositionnelle vers la lo-
gique du premier ordre est comme suit : ´
Etant donn´e un ensemble fini S
de formules, on peut le transformer en un ensemble de clauses universelles
S0, et puis construire l’ensemble des ces instances de Herbrand H(S0). Par le
Th´eor`eme 3.4.4 et la compl´etude r´efutationelle de la r´esolution propositionnelle,
Sest non-satisfaisable si et seulement si H(S0)`R2. Malheureusement, cela
ne nous donne pas directement une ´enum´eration r´ecursive des ensembles finis
non-satisfaisables de formules puisqu’il s’agit d’un ensemble infini de clauses,
et il n’est pas clair comment, en g´en´eral, un algorithme peut travailler sur un
ensemble infini de clauses.
En utilisant le fait qu’il y a des strat´egies terminantes et compl`etes de
r´esolution propositionnelle on peut quand-mˆeme tirer de ce premier essai une
´enum´eration r´ecursive des ensembles finis non-satisfaisables de formules : ´
Etant
donn´e S, on construit une ´enum´eration e↵ective s1,s
2,...des instances de Her-
brand de S. Soit `RS la d´eduction par r´esolution binaire et factorisation selon
la strat´egie compl`ete et terminante. On lance l’algorithme suivant :
T:= ;;
n:= 0 ;
while 262 Tdo begin
T:= T[{sn};
n:= n+1 ;
while there exists a w62 Tsuch that T`RS wdo
T:= T[{w};
end ;
print "non satisfaisable" ;
Puisque la strat´egie est terminante, la boucle int´erieure termine toujours
apr`es un nombre fini d’it´erations. On dit que la boucle int´erieure calcule une
saturation par `RS . En un sens, cet algorithme est d´ej`a un peu plus ⌧intelligent
que l’algorithme pr´esent´e `a la fin de la section pr´ec´edente puisque, `a chaque
it´eration de la boucle principale, on r´eutilise le travail fait pendant les it´erations
pr´ec´edentes.
La clef pour faire mieux est l’observation que, ´etant donn´ee une clause uni-
verselle U, son ensemble d’instances de Herbrand est un ensemble tr`es r´egulier.
L’id´ee est donc de chercher une repr´esentation finie de cet ensemble infini de
clauses. La repr´esentation qui vient `a l’esprit est d’utiliser une clause universelle
en S0comme une repr´esentation de l’ensemble infini H(S0). Puis, ´etant donn´ees
deux clauses universelles C1et C2, on cherche `a ex´ecuter d’un seul coup un pas
de r´esolution sur toutes les instances de Herbrand de C1et toutes les instances
de Herbrand de C2, et de repr´esenter l’ensemble r´esultant de clauses par une
clause du premier ordre.