Résolution avec variables

Transcription

Résolution avec variables
Chapitre 4
Résolution avec variables
I
Étapes de la démonstration automatique
Le problème général de la démonstration automatique peut se formuler par la
question : “est-il vrai qu’une formule B est conséquence logique d’un ensemble
de formules Γ ?” ou encore de manière équivalente, “est-il vrai que l’ensemble
Γ ∪ {¬B} n’a pas de modèle ?”. Notons que Γ peut être vide. On est donc
ramené au problème de savoir si un certain ensemble de formules Γ0 = Γ∪{¬B}
possède un modèle ou non. Pour le résoudre, dans un premier temps, on prépare
les formules en effectuant successivement les traitements suivants :
1. mise sous forme prénexe des formules de Γ0 , ce qui donne Γ1 ;
2. mise sous forme de Skolem des formules de Γ1 , ce qui donne Γ2 ;
3. suppression des quantificateurs universels des formules de Γ2 , d’où Γ3 ;
4. mise sous forme clausale des formules de Γ3 , ce qui donne Γ4 .
Puis via la résolution et la factorisation, on tente de générer la clause vide. Si on
y arrive, cela signifie que Γ0 est contradictoire et donc que B est effectivement
conséquence logique de Γ. Si Γ0 est contradictoire, alors il y a moyen d’y arriver.
Exemple I.1 Soit le problème de savoir si la formule B = ∃x ∃y Q(x, y) est
conséquence de l’ensemble des formules
Γ = {∀x (P (x)=⇒∃y (R(y) ∧ Q(x, y))), ∃x P (x)}.
L’ensemble Γ0 est alors :
Γ0 = {∀x (P (x)=⇒∃y (R(y) ∧ Q(x, y))), ∃x P (x), ¬∃x ∃y Q(x, y)}.
On obtient successivement les ensembles de formules :
Γ1 = {∀x ∃y (¬P (x) ∨ (R(y) ∧ Q(x, y))), ∃x P (x), ∀x ∀y ¬Q(x, y)},
Γ2 = {∀x (¬P (x) ∨ (R(f (x)) ∧ Q(x, f (x)))), P (a), ∀x ∀y ¬Q(x, y)},
Γ3 = {¬P (x) ∨ (R(f (x)) ∧ Q(x, f (x))), P (a), ¬Q(x, y)},
Γ4 = {¬P (x) ∨ Q(x, f (x)), ¬P (x) ∨ R(f (x)), P (a), ¬Q(x, y)}
Si Γ4 n’a pas de modèle, alors la formule B est conséquence logique de
l’ensemble de formules Γ ; autrement, la formule B n’est pas conséquence logique
de l’ensemble de formules Γ.
5
II
II.A
Préparation des formules
Forme prénexe
La mise sous forme prénexe et la mise sous forme de Skolem permettent de
se débarrasser des quantificateurs d’un ensemble fini de formules du calcul des
prédicats du premier ordre.
Soit A une formule du calcul des prédicats du premier ordre. On dit que A
est sous forme prénexe si A est de la forme :
A = Q1 x1 . . . Qn xn B
où chaque Qi est soit ∀, soit ∃ et où B ne contient aucun quantificateur.
Proposition II.1 Pour toute formule A du calcul des prédicats du premier
ordre, il existe une formule A! sous forme prénexe qui est équivalente à A.
On sait que si dans une formule F comportant une sous-formule B, on remplace B par une formule (sémantiquement) équivalente B ! , on obtient une formule F ! (sémantiquement) équivalente à F . Voici une méthode permettant, à
partir d’une formule quelconque, d’obtenir une formule équivalente sous forme
prénexe. Le fait que cette méthode se termine et donne effectivement une formule sous forme prénexe équivalente à celle de départ résulte de considérations
élémentaires.
(a) Se débarrasser de =⇒ et ⇐⇒ en utilisant les équivalences suivantes de
gauche à droite :
a1 (A=⇒B) ≡ (¬A ∨ B)
a2 (A ⇐⇒ B) ≡ ((A ∧ B) ∨ (¬A ∧ ¬B))
(b) Changer le nom de certaines variables liées de manière à n’avoir plus de
variable quantifiée deux fois, en utilisant les équivalences suivantes :
b1 ∀x A(x) ≡ ∀y A(y)
b2 ∃x A(x) ≡ ∃y A(y).
(c) Faire remonter tous les quantificateurs en tête en utilisant les équivalences
suivantes de gauche à droite (x n’étant pas variable libre de C) :
c1 ¬∃x A(x) ≡ ∀x ¬A(x)
c2 ¬∀x A(x) ≡ ∃x ¬A(x)
c3 (C ∨ ∀x A(x)) ≡ ∀x (C ∨ A(x))
c4 (C ∨ ∃x A(x)) ≡ ∃x (C ∨ A(x))
c5 (C ∧ ∀x A(x)) ≡ ∀x (C ∧ A(x))
c6 (C ∧ ∃x A(x)) ≡ ∃x (C ∧ A(x))
Exemple II.1 (∀x A(x)=⇒(∃y B(y) ∨ ∃y C(y)))
≡ (¬∀x A(x) ∨ (∃y B(y) ∨ ∃y C(y)))
≡ (¬∀x A(x) ∨ (∃y B(y) ∨ ∃z C(z)))
≡ (∃x ¬A(x) ∨ (∃y B(y) ∨ ∃z C(z)))
6
(a1)
(b2)
(c2)
≡ ∃x (¬A(x) ∨ (∃y B(y) ∨ ∃z C(z)))
≡ ∃x (¬A(x) ∨ ∃y (B(y) ∨ ∃z C(z)))
≡ ∃x ∃y (¬A(x) ∨ (B(y) ∨ ∃z C(z)))
≡ ∃x ∃y (¬A(x) ∨ ∃z (B(y) ∨ C(z)))
≡ ∃x ∃y ∃z (¬A(x) ∨ (B(y) ∨ C(z)))
(c4 et commutativité de ∨)
(c4 et commutativité de ∨)
(c4)
(c4)
(c4)
Remarque II.1 Pour limiter le nombre de quantificateurs de la formule finale,
il peut être intéressant de ne pas mener complètement l’étape (b) et, à l’étape
(c), d’utiliser les deux équivalences supplémentaires suivantes :
c7 (∀x A(x) ∧ ∀x B(x)) ≡ ∀x (A(x) ∧ B(x))
c8 (∃x A(x) ∨ ∃x B(x)) ≡ ∃x (A(x) ∨ B(x))
Exemple II.2 En reprenant l’exemple précédent :
(∀x A(x)=⇒(∃y B(y) ∨ ∃y C(y)))
≡ (¬∀x A(x) ∨ (∃y B(y) ∨ ∃y C(y)))
≡ (¬∀x A(x) ∨ ∃y (B(y) ∨ C(y)))
≡ (∃x ¬A(x) ∨ ∃y (B(y) ∨ C(y)))
≡ (∃x ¬A(x) ∨ ∃x (B(x) ∨ C(x)))
≡ ∃x (¬A(x) ∨ (B(x) ∨ C(x)))
(a1)
(c8)
(c2)
(b2)
(c8)
Exercice II.1 Mettre sous forme prénexe les formules suivantes :
A : ∀x ∃y ∀z (P (x, y, z)=⇒∀y ∃z Q(y, z))
B : ∀x (∃z (P (z, x)=⇒∃y P (y, x) ∧ ¬(∃t (P (t, x) ∧ P (t, z)))))
C : ∀x ∀y (< (x, y)=⇒¬ < (y, x)) ∨ ∃z ∀x (< (x, y)=⇒∀x < (z, x))
D : ∀y ∃x P (x, y) ⇐⇒ ∀z ∀x P (z, x)
II.B
Forme de Skolem
Soit Q1 x1 . . . Qn xn B une formule A mise sous forme prénexe. On appelle forme
de Skolem de A, et on note AS , la formule obtenue en enlevant tous les ∃xi , en
remplaçant chacune des variables xi quantifiées avec un ∃ par fi (xj1 , . . . xjl ) où
xj1 , . . . xjl sont les variables quantifiées par des ∀ placés avant le ∃xi . Lorsqu’il
n’y a aucun quantificateur ∀ avant le ∃xi , le symbole que l’on introduit est une
constante (une constante est un symbole fonctionnel d’arité nulle). On suppose,
bien sûr, que les symboles fonctionnels fi introduits sont différents de tous ceux
utilisés par ailleurs.
Exemple II.3 La forme de Skolem de ∃x1 ∀x2 ∃x3 ∀x4 ∃x5 P (x1 , x2 , x3 , x4 , x5 )
est ∀x2 ∀x4 P (a, x2 , f1 (x2 ), x4 , f2 (x2 , x4 )).
Théorème II.1 (Théorème de Skolem). Soit {A1 , . . . , An } un ensemble
fini de formules du calcul des prédicats du premier ordre. Soit {AS1 , . . . , ASn }
l’ensemble des formes de Skolem de ces formules. Alors {A1 , . . . , An } admet un
modèle de domaine D ssi {AS1 , . . . , ASn } admet un modèle de domaine D.
Exercice II.2 Mettre sous forme de Skolem les formules suivantes :
7
A : ∀x ∃y ∀z (P (x, y, z)=⇒∀y ∃z Q(y, z))
B : ∀x (∃z (P (z, x)=⇒∃y P (y, x) ∧ ¬(∃t (P (t, x) ∧ P (t, z)))))
C : ∀x ∀y (< (x, y)=⇒¬ < (y, x)) ∨ ∃z ∀x (< (x, y)=⇒∀x < (z, x))
D : ∀y ∃x P (x, y) ⇐⇒ ∀z ∀x P (z, x)
II.C
Forme clausale
– Un littéral est une formule atomique (auquel cas il est dit positif ) ou la
négation d’une formule atomique (auquel cas il est dit négatif ).
– Une clause est une disjonction finie de littéraux. La clause vide ! (sans
littéraux) est insatisfiable.
III
Unification
L’unification est la mise en coı̈ncidence des atomes par un bon choix des termes
substitués aux variables. Il s’agit là d’une idée qui est assez ancienne en logique
mathématique. Son utilisation comme élément fondamental d’un algorithme de
démonstration automatique est due à Robinson (1965).
III.A
Substitutions
Les formules considérées dans ce sous-paragraphe ne sont pas quantifiées.
– On appelle composant de substitution toute expression de la forme (x | t) où
x est une variable et t un terme quelconque du calcul des prédicats. Si A est
une formule du calcul des prédicats, on note (x | t) A la formule obtenue en
remplaçant dans A toutes les occurrences de x par t.
Remarque III.1 Les formules envisagées dans cette section n’étant pas quantifiées, le renommage des variables n’est pas nécessaire.
Une substitution est une application σ de l’ensemble des fbf du calcul des
prédicats du premier ordre dans lui-même, de la forme :
σ : A )→ c1 . . . ck A
où c1 , . . . , ck sont des composants de substitution. La suite finie c1 , . . . , ck est
appelée décomposition de la substitution σ, ce que l’on note σ = [c1 . . . ck ]. La
substitution identique sera notée [ ] ou ε.
Exemple III.1 Soit σ = [(x | f (a)) (y | f (x))] une substitution. Alors
σ P (x, y) = (x | f (a)) P (x, f (x))
= P (f (a), f (f (a)))
Remarque III.2 La décomposition en composants de substitution n’est en
général ni commutative (se vérifie à partir de l’exemple ci-dessus), ni unique
([(x | y) (z | y)] = [(z | y) (x | y)]).
8
– Soit Γ = {A1 , . . . , An } un ensemble fini de formules atomiques du calcul des
prédicats du premier ordre. On appelle unificateur de Γ toute substitution σ
telle que
σ A1 = · · · = σ An .
Exemple III.2 Soit Γ = {A1 , A2 , A3 } avec A1 = P (x, z), A2 = P (f (y), g(a))
et A3 = P (f (u), z). Alors σ = [(x | f (u)) (y | u) (z | g(a))] est un unificateur de
Γ.
Remarque III.3 1) Si σ est un unificateur d’un ensemble fini de formules Γ,
alors pour toute substitution α : α σ est un unificateur de Γ.
2) Il est possible qu’un ensemble de formules n’admette aucun unificateur (Γ =
{P (x, f (x)), P (f (y), y)}).
Soit σ un unificateur d’un ensemble de formules Γ. On dit que σ est un plus
grand unificateur (ou un unificateur le plus général ) de Γ si pour tout unificateur
α de Γ il existe une substitution β telle que σ = β α.
Exemple III.3 En reprenant l’exemple précédent, σ est un plus grand unificateur de Γ. La substitution ρ = [(x | f (v)) (y | v) (z | g(a)) (u | v)] en est un autre
et on a σ = (v | u) ρ et ρ = (u | v) σ.
Algorithme d’unification de deux atomes A et B
III.B
1. θ := ε ;
2. tant que θ A += θ B faire
(a) déterminer le symbole le plus à gauche de θ A qui soit différent du
symbole de même rang de θ B ;
(b) déterminer t1 et t2 les sous-termes respectifs de θ A et θ B qui commencent à ce symbole ;
(c) si aucun n’est une variable ou l’un est une variable contenue dans
l’autre alors échec : A et B ne sont pas unifiables ; fin.
(d) sinon faire
i. déterminer x une variable parmi t1 et t2 ;
ii. soit t celui de t1 et t2 qui n’est pas x ;
iii. θ = (x | t) θ ;
3. θ est un plus grand unificateur de A et B ;
4. fin.
Exemple III.4
θA
θB
P (x, f (x), a) P (u, w, w)
θ
'
↑
↑
P (x, f (x), a)
P (u, w, w)
[(x | u)]
P (u, f (u), a)
P (u, w, w)
[(w | f (u)) (x | u)]
↑
↑
P (u, f (u), a)
↑
↑
↑
P (u, f (u), f (u))
échec car a et f (u) non variables
↑
9
Exemple III.5
θA
P (x, f (g(x)), a)
θB
P (b, y, z)
θ
'
P (x, f (g(x)), a)
P (b, y, z)
[(x | b)]
P (b, f (g(b)), a)
P (b, y, z)
[(y | f (g(b))) (x | b)]
↑
↑
↑
↑
↑
↑
P (b, f (g(b)), a)
↑
P (b, f (g(b)), z)
↑
[(z | a) (y | f (g(b))) (x | b)]
Succès, A et B sont unifiables et un plus grand unificateur est :
[(z | a) (y | f (g(b))) (x | b)].
Exercice III.1 Peut-on unifier les deux formules atomiques suivantes ?
P (f (x, g(z)), x, f (y, g(b))) et P (u, g(f (a, b)), u)
IV
Résolution
La méthode de résolution étendue au calcul des prédicats est plus complexe
que sa version en calcul propositionnel puisqu’elle doit prendre en compte les
variables. Pour pouvoir appliquer la méthode de résolution, les formules sont
mises sous forme clausale. La résolution consiste, comme dans le cas du calcul
propositionnel, à apparier des clauses satisfaisant à certaines conditions pour
produire de nouvelles clauses jusqu’à obtenir la clause vide.
La résolution avec variables RAV est définie par les deux règles d’inférence
res et fac :
1. f, g , h ssi
res
f est de la forme l ∨ f1
g est de la forme ¬l! ∨ g1
h, la résolvante, est de la forme σ(f1 ∨ g1 )
où σ est un plus grand unificateur des atomes l et l! , f et g étant deux
clauses n’ayant aucune variable commune (toujours possible sans perte de
généralité par renommage des variables).
2. f , h ssi
fac
f est de la forme l ∨ l! ∨ f1
h, le facteur, est de la forme σl ∨ σf1
où σ est un plus grand unificateur de l et l! .
Exemple IV.1 On a
P (y, c) ∨ R(y), ¬P (c, c) ∨ Q(x) , R(c) ∨ Q(x)
res
avec l = P (y, c), l! = P (c, c) et σ = [(y|c)].
10
Exemple IV.2 On a
P (x, g(y)) ∨ P (f (c), z) ∨ R(x, y, z) , P (f (c), g(y)) ∨ R(f (c), y, g(y))
fac
avec σ = [(x|f (c))(z|g(y))].
Théorème IV.1 Un ensemble Γ de clauses du calcul des prédicats du premier
ordre est insatisfiable ssi Γ , !.
RAV
Exemple IV.3 Soit à démontrer que l’ensemble de clauses Γ :
{C1 : P (a, y) ∨ Q(x, y), C2 : ¬Q(z, t) ∨ R(a, z), C3 : ¬P (a, b), C4 : ¬R(u, v)}
est contradictoire. Le tableau ci-dessous utilise trois colonnes donnant respectivement les clauses parentes, la résolvante ou le facteur et la substitution ayant
permis l’unification d’atomes. À chaque factorisation ou résolution, on crée une
nouvelle clause à laquelle on assigne un nouvel identificateur (par exemple C5 ).
Toutes les variables de cette nouvelle clause sont renommées pour qu’elle n’ait
aucune variable commune avec les autres clauses.
Parents
C1 , C3
C2 , C4
C5 , C6
Résolvante ou facteur
C5 : Q(w, b)
C6 : ¬Q(v ! , t! )
C7 : !
Substitution
[(y | b)]
[(z | v) (u | a)]
[(t! | b) (v ! | w)]
RAV génère la clause vide en C7 , donc Γ est contradictoire.
Exemple IV.4 Considérons l’ensemble de clauses Γ :
{C1 : P (x) ∨ P (y), C2 : ¬P (a) ∨ ¬P (b)}.
On peut justifier informellement de l’insatisfiabilité de Γ comme suit. C1 signifie
en fait que P est vraie pour tous les éléments du domaine. C2 indique que P est
fausse pour au moins un élément. Ces deux informations sont contradictoires.
Cependant, sans factorisation, on ne peut pas déduire la clause vide car la
résolvante de deux clauses comptant deux littéraux chacune comprend elle aussi
deux littéraux. Donc uniquement avec la règle d’inférence res, la clause vide est
hors d’atteinte. Avec la factorisation, on a :
Parents
C1
C2 , C3
C3 , C4
Résolvante ou facteur
C3 : P (z)
C4 : ¬P (b)
C5 : !
Substitution
[(y | x)]
[(z | a)]
[(z | b)]
RAV génère la clause vide en C5 , donc Γ est contradictoire.
Exercice IV.1 Démontrer la déduction suivante à l’aide de la méthode de
résolution. Tout humain est un primate. Les dauphins ne sont pas des primates. Il y a des dauphins qui sont intelligents. Donc on peut ne pas être
humain et être intelligent.
11

Documents pareils