Logique du Premier Ordre: R solution partie 2: pas de coupure, correction, complétude, ind cidabilit de la logique du premier ordre.

publicité
INFO-F-302, Cours d’Informatique Fondamentale
Logique pour l’Informatique
Emmanuel Filiot
Département d’Informatique
Faculté des Sciences
Université Libre de Bruxelles
Année académique 2011-2012
Basé sur le cours Logique Informatique du Pr. J.-F. Raskin
1-
INFO-F-302 - /
Règle de la résolution
Etant donnée une clause C , les formules atomiques de C apparaissant sans
négation sont dites positives et celles apparaissant précédées d’une
négation sont dites négatives. La clause C peut être notée (N, P) où N,
respectivement P, est l’ensemble des formules atomiques négatives,
respectivement positives de C .
La règle de résolution permet de déduire une nouvelle clause à partir de
deux clauses C1 et C2 . Elle opère en deux temps
2-
1
d’abord unification d’un ensemble de formules atomiques négatives de
C1 et positives de C2 ,
2
puis coupure sur la formule atomique obtenue.
INFO-F-302 - La Logique des Prédicats / Résolution
Règle
Soit C1 = (N1 , P1 ) et C2 = (N2 , P2 ) deux clauses séparées , c’est-à-dire
sans variables communes (il suffit de renommer des variables dans une des
clauses si nécessaire).
S’il existe P10 ⊆ P1 et N20 ⊆ N2 tels que l’ensemble des formules atomiques
P10 ∪ N20 soit unifiable et si σ est un unificateur principal, la nouvelle clause
C , déduite des deux clauses C1 , C2 par résolution, est définie par
N = σ(N1 ) ∪ σ(N2 \ N20 ) et
P = σ(P1 \ P10 ) ∪ σ(P2 )
La clause C est dite déduite par résolution des clauses C1 et C2
relativement à l’unificateur σ (et P10 , N20 ). On dit que la clause C est un
résolvant de C1 et C2 relativement à σ.
3-
INFO-F-302 - La Logique des Prédicats / Résolution
Exemple
Soit L un langage comportant les symboles de prédicats p, q, s unaires, r
binaire, f un symbole de fonction unaire et les clauses :
C1 ≡ ¬s(z) ∨ p(z) ∨ q(z)
C2 ≡ ¬p(f (y )) ∨ r (x, y )
4-
INFO-F-302 - La Logique des Prédicats / Résolution
Exemple
On considère les sous-ensembles de C1 et C2 suivants :
P1 = {p(z)}, N2 = {¬p(f (y ))}
Nous allons unifier {p(f (y )), p(z)}
On considère donc le système S = {(z, f (y ))} de hauteur zéro qui est
unifié par σ(z) = f (y ).
Nous pouvons maintenant calculer C3 (la clause résolvante) comme :
C3 ≡ ¬s(f (y )) ∨ q(f (y )) ∨ r (x, y )
5-
INFO-F-302 - La Logique des Prédicats / Résolution
Preuve par résolution
Soit S un ensemble de clauses et C une clause. Une preuve par résolution
de C à partir de S est une suite finie de clauses C1 , C2 , . . . , Cn telles que
Cn = C et pour tout i = 1, 2, . . . , n :
soit Ci est une clause de S ;
soit il existe 1 ≤ j, k < i tels que Ci soit un résolvant de Cj , Ck .
L’existence d’une preuve C par résolution à partir de S est notée S `R C .
Une réfutation de S est une preuve de la clause vide à partir de S. La
clause vide est notée ×.
6-
INFO-F-302 - La Logique des Prédicats / Résolution
Exercice
Montrez que l’ensemble de clauses :
¬p(x) ∨ p(y )
p(z) ∨ q(z)
¬p(c)
¬q(d)
possède une réfutation.
7-
INFO-F-302 - La Logique des Prédicats / Résolution
Nécessité de considérer des ensembles de littéraux
Appliquez la méthode de résolution pour montrer l’insatisfaisabilité
des clauses
I
I
C1 = p(a, x) ∨ p(x, a)
C2 = ¬p(a, x) ∨ ¬p(x, a)
en vous imposant d’unifier des paires de littéraux seulement, et donc
des paires d’ensemble de littéraux, i.e. en supposant que dans la règle
de coupure, P10 et N20 sont des ensembles singletons.
8-
INFO-F-302 - La Logique des Prédicats / Résolution
Nécessité de considérer des ensembles de littéraux
Appliquez la méthode de résolution pour montrer l’insatisfaisabilité
des clauses
I
I
C1 = p(a, x) ∨ p(x, a)
C2 = ¬p(a, x) ∨ ¬p(x, a)
en vous imposant d’unifier des paires de littéraux seulement, et donc
des paires d’ensemble de littéraux, i.e. en supposant que dans la règle
de coupure, P10 et N20 sont des ensembles singletons.
Un pas de coupure donne toujours la clause p(a, x) ∨ ¬p(a, x). La
méthode “par singletons” n’est donc pas complète. Par contre, en
unifiant toutes les littéraux, on obtient par un pas de coupure la
clause vide directement, avec la substitution (a/x).
On peut néanmoins obtenir une méthode complète “par singletons”,
mais il faut alors ajouter la règle de factorisation : étant donnée une
clause de la forme l1 ∨ l2 ∨ C et un unificateur principal σ de l1 ∨ l2
(s’il existe), on génère la clause σ(l1 ) ∨ σ(C ). C’est une variante qui
est souvent décrite dans la littérature.
8-
INFO-F-302 - La Logique des Prédicats / Résolution
Correction de la résolution
La correction de la méthode de résolution est exprimée par la propriété
suivante : l’existence d’une réfutation de S implique que S n’a pas de
modèle. Comme pour la logique propositionnelle, pour établir ce résultat,
nous prouvons d’abord l’adéquation d’un pas de coupure.
Lemme (Adéquation de la règle de coupure)
Si C est un résolvant de C1 , C2 alors C̄ est une conséquence logique de
C¯1 ∧ C¯2 (la clôture universelle de C est notée C̄ ).
Preuve. On a besoin de la propriété suivante dans la démonstration du
lemme.
Soit B(x1 , ..., xk ) une clause et µ une structure pour le langage L. Si σ est
une substitution telle que pour i = 1, 2, ..., k :
σ(xi ) = ti (y1 , ..., yl )
et b1 , ..., bl ∈ M µ , on pose : ai = tiµ [b1 , ..., bl ]
La clause B satisfait alors : µ, [a1 , ..., ak ] |= B ssi µ, [b1 , ..., bl ] |= σ(B) .
9-
INFO-F-302 - La Logique des Prédicats / Correction de la résolution
Correction de la résolution
Lemme (Adéquation de la règle de coupure)
Si C est un résolvant de C1 , C2 alors C̄ est une conséquence logique de
C¯1 ∧ C¯2 (la clôture universelle de C est notée C̄ ).
Preuve (Suite). Nous pouvons maintenant aborder la preuve du lemme. Les
clauses C1 , C2 et C , résolvant de C1 , C2 relativement à l’unificateur σ (pour P1 et
N2 ) peuvent s’écrire sous la forme suivante :
W
V
C1 ≡ G1 → (F1 ∨ P1 )
C2 ≡ (F2 ∧ N2 ) → D2
C ≡ (σ (G1 ) ∧ σ (F2 )) → (σ (F1 ) ∨ σ (D2 ))
avecW
V
P1 ( N2 ) la disjonction (conjonction) des formules de P1 (N2 )
G1 la conjonction des formules atomiques apparaissant négativement dans C1
F1 la disjonction des formules atomiques apparaissant positivement dans C1
mais pas dans P1
D2 la disjonction des formules atomiques apparaissant positivement dans C2
F2 la conjonction des formules atomiques apparaissant négativement dans
C2 mais pas dans N2
10-
INFO-F-302 - La Logique des Prédicats / Correction de la résolution
Correction de la résolution
Lemme (Adéquation de la règle de coupure)
Si C est un résolvant de C1 , C2 alors C̄ est une conséquence logique de
C¯1 ∧ C¯2 (la clôture universelle de C est notée C̄ ).
Preuve (Suite).
On va maintenant établir la contraposée du lemme. On suppose donc qu’il
existe µ tel que µ 6|= C̄ . En d’autres termes, nous supposons qu’il existe µ
et b1 , b2 , ..., bl ∈ M µ tels que
µ, [b1 , ..., bl ] |= ¬C
On va maintenant établir que µ 6|= C̄1 ou µ 6|= C̄2 .
Par hypothèse, µ, [b1 , . . . , bl ] |= ¬C , donc on a que µ et [b1 , . . . , bl ] sont
tels que
(1) µ, [b1 , ..., bl ] |= (σ (G1 ) ∧ σ (F2 )) et
µ, [b1 , ..., bl ] |= ¬ (σ (F1 ) ∨ σ (D2 ))
11-
INFO-F-302 - La Logique des Prédicats / Correction de la résolution
Correction de la résolution
Lemme (Adéquation de la règle de coupure)
Si C est un résolvant de C1 , C2 alors C̄ est une conséquence logique de
C¯1 ∧ C¯2 (la clôture universelle de C est notée C̄ ).
Preuve (Suite).
Soient x1 , x2 , ..., xk les variables apparaissant dans C1 , C2 et ti les termes
définis par σ (xi ) = ti (y1 , ..., yl ) pour i = 1, 2, ..., k. La suite des ai est
définie par
ai = tiµ [b1 , ..., bl ]
D’après la propriété rappelée précédemment et (1), on obtient donc que :
µ, [a1 , ..., ak ] |= G1
µ, [a1 , ..., ak ] |= F2
µ, [a1 , ..., ak ] |= ¬F1 µ, [a1 , ..., ak ] |= ¬D2
12-
INFO-F-302 - La Logique des Prédicats / Correction de la résolution
Correction de la résolution
Lemme (Adéquation de la règle de coupure)
Si C est un résolvant de C1 , C2 alors C̄ est une conséquence logique de
C¯1 ∧ C¯2 (la clôture universelle de C est notée C̄ ).
Preuve (Suite). Vu que toutes les formules atomiques de P1 et N2 sont
unifiées par σ en une formule atomique que nous notons φa , on a
exactement deux cas possibles. Soit µ, [b1 , ..., bl ] |= φa soit
µ, [b1 , ..., bl ] |= ¬φa . Dans le premier
cas, d’après la propriété précédente,
V
on obtient que µ, [a1 , ...,
W ak ] |= N2 . Dans le deuxième cas, on obtient
que µ, [a1 , ..., ak ] |= ¬ P1 .
Ainsi, dans le premier cas, on obtient que µ, [a1 , ..., ak ] satisfait la négation
de C2 , et dans le deuxième cas que µ, [a1 ,..., ak ] satisfait la négation de C1
Dans les deux cas, l’une des formules de C¯1 , C¯2 est fausse dans µ.
Corollaire
Si S `R C , alors C̄ est une conséquence logique de S̄. En particulier, s’il
existe une réfutation de S, alors S n’a pas de modèle.
13-
INFO-F-302 - La Logique des Prédicats / Correction de la résolution
Complétude de la résolution
Théorème
Si un ensemble de clauses S est non satisfaisable alors il existe une
réfutation de S par résolution.
Voici le schéma principal de la preuve de ce résultat :
14-
1
Si S est non satisfaisable, d’après le théorème de Herbrand, il existe
un ensemble fini d’instances closes de clauses de S qui est non
satisfaisable, i.e. il existe
Sc ⊆ {σ(C ) | σ est une substitution close et C ∈ S} fini qui est non
satisfaisable.
2
On peut appliquer la résolution de la logique propositionnelle à Sc , et
comme elle est complète, il existe une réfutation de Sc par résolution.
3
La dernière étape consiste à construire une réfutation pour S à partir
de la réfutation de Sc . Cette partie de preuve est basée sur le lemme
du relèvement que nous allons voir maintenant.
INFO-F-302 - La Logique des Prédicats / Complétude de la résolution
Lemme du relèvement
Lemme
Soit C1 , C2 deux clauses et C10 , C20 deux instances closes de C1 et C2 . Soit
C 0 un résolvant (clos) de C10 et C20 . Alors il existe un résolvant C de C1 et
C2 tel que C 0 soit une instance close de C .
Preuve. On sait que C10 = σ1 (C1 ) pour une substitution close σ1 , et de
même C20 = σ2 (C2 ) pour une substitution close σ2 . Sans perte de
généralité, on peut supposer que C1 et C2 n’ont pas de variables en
commun (sinon on renomme les variables), et donc on peut supposer que
σi est identitaire sur toutes les variables qui n’apparaı̂ssent pas dans Ci ,
i = 1, 2. On définit alors σ1 ∪ σ2 comme la substitution qui à x associe
σ1 (x) si x est dans C1 , σ2 (x) si x est dans C2 et x sinon.
Supposons que C1 = (P1 , N1 ) et C2 = (P2 , N2 ), et que la résolution close
entre C10 et C20 se fait sur une formule atomique a0 qui apparaı̂t
positivement dans C10 et négativement dans C20 . On pose
P10 = {b ∈ P1 | σ1 (b) = a0 } et N20 = {b ∈ P2 | σ2 (b) = a0 }.
15-
INFO-F-302 - La Logique des Prédicats / Complétude de la résolution
Lemme du relèvement
Lemme
Soit C1 , C2 deux clauses et C10 , C20 deux instances closes de C1 et C2 . Soit
C 0 un résolvant (clos) de C10 et C20 . Alors il existe un résolvant C de C1 et
C2 tel que C 0 soit une instance close de C .
Preuve (Suite).
Sans perte de généralité on peut supposer que
C1 = (P10 ∪ P100 , N1 )
C2 = (P2 , N20 ∪ N200 )
0
0
00
C1 = ({a } ∪ σ1 (P1 ), σ1 (N1 ) C20 = (σ2 (P2 ), {a0 } ∪ σ2 (N200 ))
Donc σ1 ∪ σ2 est un unificateur de P10 ∪ N20 . Soit maintenant σ un
unificateur principal de P10 ∪ N20 . Soit C obtenu par coupure entre C1 et C2
sur P10 , N20 avec σ, i.e. C = (σ(P100 ∪ P2 ), σ(N1 ∪ N200 )). Puisque σ est un
unificateur principal, il existe β tel que σ1 ∪ σ2 = β ◦ σ. Par ailleurs, on
sait que C 0 = ((σ1 ∪ σ2 )(P100 ∪ P2 ), (σ1 ∪ σ2 )(N1 ∪ N200 )). Donc si on
remplace σ1 ∪ σ2 par β ◦ σ, on obtient C 0 = β(C ).
16-
INFO-F-302 - La Logique des Prédicats / Complétude de la résolution
Relèvement d’une réfutation close
On peut appliquer le lemme précédent pour relever une réfutation close et
établir ainsi la complétude. On sait qu’il existe une réfutation close de Sc
par la complétude de la résolution dans la logique propositionnelle, i.e. une
0
suite C00 , . . . , Cn0 , Cn+1
, . . . Cm0 de clauses closes telles que
0
0
Sc = {C0 , . . . , Cn } et Cm0 =⊥. On peut établir par induction, en appliquant
le lemme de relèvement précédent (exercice), qu’il existe une suite de
clauses A = C0 , . . . , Cn , Cn+1 , . . . Cm de clauses et une suite σ0 , . . . , σm de
substitutions telles que Ci0 = σi (Ci ) pour tout i, S = {C0 , . . . , Cn } et
Cn+1 , . . . , Cm sont obtenues par application de la règle de coupure.
Comme Cm0 =⊥, on obtient Cm =⊥, donc A est une réfutation de S.
Résolution
C0
premier ordre
↓σ0
Résolution
C00
propositionnelle
17-
→ C1
↓σ1
→ C10
→ ...
→ ...
Cn
↓σn
Cn0
→ Cn+1 . . .
↓σn+1
0
→ Cn+1
...
INFO-F-302 - La Logique des Prédicats / Complétude de la résolution
→ ⊥
↓σm
→ ⊥
Indécidabilité de la logique du premier ordre
Nous allons montrer qu’il n’existe pas d’algorithme 1 A qui prend en
entrée une formule de la logique du premier ordre et retourne 1 si elle
est valide, 0 sinon.
On dit que le problème de validité pour la logique du premier ordre
est un problème indécidable.
1. Entendez par algorithme un programme Java, C, Python ... La formalisation
des notions d ’algorithme et de problème n’est pas l’objet de ce cours, mais sera
vue en Master dans le cours Calculabilité et Complexité.
18-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
Notion de Réduction
Pour montrer l’indécidabilité d’un problème de décision 2 P1 , on part
d’un problème de décision P2 indécidable et on montre l’existence
d’un algorithme, appelé réduction, qui pour toute instance I2 de P2
construit une instance I1 de P1 telle que I1 a une solution si et
seulement si I2 a une solution.
De cette façon, on montre que P1 est “aussi difficile” que P2 . S’il
existait un algorithme pour résoudre P1 , alors cela nous donnerait un
algorithme pour résoudre P2 : appliquer la réduction puis l’algorithme
pour P1 . Cela contredirait le fait que P2 soit indécidable, donc il
n’existe pas d’algorithme pour résoudre P1 .
2. i.e. dont la réponse est 0 ou 1
19-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
Notion de Réduction
Pour montrer l’indécidabilité d’un problème de décision 2 P1 , on part
d’un problème de décision P2 indécidable et on montre l’existence
d’un algorithme, appelé réduction, qui pour toute instance I2 de P2
construit une instance I1 de P1 telle que I1 a une solution si et
seulement si I2 a une solution.
De cette façon, on montre que P1 est “aussi difficile” que P2 . S’il
existait un algorithme pour résoudre P1 , alors cela nous donnerait un
algorithme pour résoudre P2 : appliquer la réduction puis l’algorithme
pour P1 . Cela contredirait le fait que P2 soit indécidable, donc il
n’existe pas d’algorithme pour résoudre P1 .
Certains problèmes ont directement été montré indécidables : le
problème de terminaison d’un programme par exemple, mais aussi le
problème de validité dans la logique du premier ordre (travaux
d’Alonzo Church et Alan Turing).
ici, nous allons utiliser une réduction à partir du problème de
correspondance de Post.
2. i.e. dont la réponse est 0 ou 1
19-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
Problème de la Correspondance de Post (PCP)
Soit Σ = {0, 1}. Un mot u sur Σ est une séquence finie d’éléments de Σ.
Deux mots u et v peuvent être concaténés pour former un nouveau mot
noté uv . L’élément neutre pour la concaténation est noté (mot vide).
Par exemple : u = 01 est un mot, v = 110 est un mot, uv = 01110,
u = u = u = 01.
Le problème de la Correspondance de Post (PCP) se formule de la manière
suivante :
Entrée
(u1 , v1 ), . . . , (un , vn ), n ≥ 1, n paires de mots (possiblement vides) sur Σ.
Sortie
1 si et seulement si il existe une séquence finie d’indices
i1 , . . . , ik ∈ {1, . . . , n} telle que k ≥ 1 et
ui1 ui2 . . . uik = vi1 vi2 . . . vik
20-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
PCP : exemples
Instance : (u1 , v1 ) = (100, 00), (u2 , v2 ) = (0, 01), Solution (parmi
d’autres) : 2,1
u2 x1 = 0100 = v2 v 1
Instance : (u1 , v1 ) = (1, 100), (x2 , v2 ) = (0, ), Solution : 1,2,2
u1 u2 u2 = 100 = v1 v2 v2
Instance : (u1 , v1 ) = (1, 0), (u2 , v2 ) = (0, 1), Pas de solution
Instance :
(u1 , v1 ) = (0, 100), (u2 , v2 ) = (01, 00), (u3 , v3 ) = (110, 11) ?
21-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
PCP : exemples
Instance : (u1 , v1 ) = (100, 00), (u2 , v2 ) = (0, 01), Solution (parmi
d’autres) : 2,1
u2 x1 = 0100 = v2 v 1
Instance : (u1 , v1 ) = (1, 100), (x2 , v2 ) = (0, ), Solution : 1,2,2
u1 u2 u2 = 100 = v1 v2 v2
Instance : (u1 , v1 ) = (1, 0), (u2 , v2 ) = (0, 1), Pas de solution
Instance :
(u1 , v1 ) = (0, 100), (u2 , v2 ) = (01, 00), (u3 , v3 ) = (110, 11) ?
u3 u2 u3 u1 =(110)(01)(110)(0)=110011100=(11)(00)(11)(100)=v3 v2 v3 v1
21-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
Théorèmes
Théorème
Le problème de Correspondance de Post est indécidable.
Preuve admise.
Théorème
Le problème de validité en logique du premier ordre est indécidable.
Nous allons montrer ce résultat en réduisant PCP.
22-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
Preuve
Nous considérons le langage du premier ordre contenant un prédicat
binaire p, deux symboles de fonction unaires f0 et f1 , et un symbole de
constante a. Etant donné un mot u sur Σ et un terme g , on définit le
terme tu (g ) sur L par :
g si u = fbs (fbs−1 . . . (fb2 (fb1 (g )))) si u = b1 b2 . . . bs .
Soit I = {(u1 , v1 ), . . . , (un , vn )} une instance de PCP. Nous allons
construire une formule φI de la logique du premier ordre, sur le langage L,
et montrer que φI est valide si et seulement si I a une solution. La formule
φI se décompose comme suit :
φI = ρ ∧ σ → τ
Premièrement,
ρ ≡ p(tu1 (a), tv1 (a)) ∧ p(tu2 (a), tv2 (a)) ∧ · · · ∧ p(tun (a), tvn (a))
23-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
Preuve
Cela signifie qu’on met dans la relation p les termes qui correspondent aux
paires de mots. On peut étendre cette relation aux concaténations (paires
à paires) de couples de mots de I . En particulier, la formule suivante
signifie que si x et y sont en relation, alors on peut concaténer ui à x et vj
à y , pourvu que i = j.
σ ≡ ∀x∀y .(p(x, y ) →
n
^
p(tui (x), tvi (y ))
i=1
Enfin, τ signifie l’existence de deux éléments égaux en relation :
τ ≡ ∃z.p(z, z)
Clairement, cette réduction est effective (on peut écrire un algorithme qui
l’implémente). Montrons qu’elle est correcte.
24-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
Preuve
Supposons que I a une solution i1 , . . . , ik et montrons que φI est valide.
Pour cela, soit M une structure sur L. Supposons que M |= ρ ∧ σ. On sait
par hypothèse que
ui1 . . . uik = vi1 . . . vik
Donc tuik (tuik−1 (. . . (tui1 (a))) = tvik (tvik−1 (. . . (tvi1 (a))) = g pour un certain
g . Par hypothèse, on sait que M |= p(tui1 , tvi1 ) et comme M |= σ, on
obtient aussi que M |= p(tui2 (tui1 ), tvi2 (tvi1 )), et plus généralement, que
M |= p(g , g ). Donc M |= ∃z.p(z, z).
25-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
Preuve
Réciproquement, supposons que φI est valide et montrons que I a une
solution. Soit H la structure de Herbrand sur L avec l’intreprétation v
définie pour tous termes clos h et g par v (p(tui (g ), tvj (h)) = 1 si et
seulement si i = j et v (p(g , h)) = 1 (définition inductive). Clairement,
H |= ρ ∧ σ, donc H |= τ puisque φI est valide. Donc il existe un terme clos
t tel que H |= p(t, t). Par définition de H, il est facile de voir que t se
décompose nécessairement en
t = tuik (tuik−1 (. . . (tui1 (a))) = tvik (tvik−1 (. . . (tvi1 (a))). Donc
ui1 . . . uik = vi1 . . . vik
et I a une solution.
26-
INFO-F-302 - La Logique des Prédicats / Indécidabilité du problème de validité
Téléchargement