Académique Documents
Professionnel Documents
Culture Documents
1 Calcul propositionnel
Définition 1 On appelle littéral une proposition ou la négation d’une proposition.
Exemple 1
P ∨ ¬Q ∨ ¬R ∨ S ∨ T est une clause composée des cinq littéraux P , ¬Q, ¬R, S et T .
¬P est une clause composée d’un seul littéral (ou clause mono-littérale).
1.1 Normalisation
Définition 3 On appelle Forme Normal Conjonctive (ou FNC) toute conjonction de disjonctions de
littéraux. De manière duale, on appelle Forme Normale Disjonctive (ou FND) toute disjonction de
conjonctions de littéraux.
Remarque: L’écriture d’une formule propositionnelle sous FND est obtenue directement à partir des lignes
et colonnes de la table de vérité de cette formule. On obtient aisément une FNC équivalente à partir d’une
FND en transformant cette dernière, par simplification quand c’est possible, ainsi que par application des
lois de distributivité.
Théorème 1 Toute formule propositionnelle peut être réécrite de manière équivalente sous Forme Nor-
male Conjonctive (FNC), ou sous Forme Normale Disjonctive (FND).
1
La formule ¬P ∧ R est une FNC équivalente à la formule initiale et obtenue par simplification ; elle est
composée des deux clauses mono-littérales ¬P et R. La même FNC est obtenue (de manière plus longue)
en distribuant le connecteur ∨ sur les ∧ à l’intérieur des parenthèses dans la FND :
en remarquant que ¬P ∧ (¬P ∨ Q), ¬P ∧ (¬P ∨ R), ¬P ∧ (¬Q ∨ ¬P ) sont équivalents à ¬P , et que de
même (¬Q ∨ R) ∧ R, (R ∨ ¬P ) ∧ R, (R ∨ Q) ∧ R sont équivalents à R.
Remarque: On représente souvent une clause par l’ensemble des littéraux qui la compose, et une FNC par
l’ensemble des ensembles de littéraux associés aux clauses sous-jacentes. La FNC de l’exemple précédent
peut ainsi s’écrire sous forme ensembliste {{¬P }, {R}}.
Vérifier que G est une conséquence logique des formules F1 , F2 , . . . , Fn en énumérant les modèles
d’une table de vérité s’avère vite impraticable pour n un peu grand. On dispose de plusieurs résultats
permettant de réaliser des preuves autrement. Le premier de ces résultats est donné par le théorème
suivant qui ramène la construction d’une preuve à l’établissement de l’inconsistance d’un ensemble de
formules.
La mise en pratique de ce résultat peut passer par plusieurs algorithmes, dont les deux plus efficaces,
opérant sur la FNC d’une formule (donc sur l’ensemble équivalent de clauses), sont la résolution et la
méthode de Davis, Putnam, Loveland.
1.3 Résolution
On considère deux clauses de formes respectives ¬P ∨ ¬Q1 ∨ ¬Q2 ∨ . . . ∨ Qn et P ∨ ¬Q′1 ∨ . . . ∨ ¬Q′m ;
autrement dit, le littéral P apparaı̂t positivement dans une clause et négativement dans l’autre clause.
La résolution repose sur l’emploi de la règle dérivation suivante, appelée cut :
La clause ¬Q1 ∨¬Q2 ∨. . .∨Qn ∨¬Q′1 ∨. . .∨¬Q′m est appelée résolvante des clauses ¬P ∨¬Q1 ∨¬Q2 ∨. . .∨Qn
et P ∨ ¬Q′1 ∨ . . . ∨ ¬Q′m .
2
Exemple 3
1. On considère les clauses
C1 : E1 ∨ E2
C2 : ¬E2 ∨ E3
La résolvante de C1 et C2 est la clause
C3 : E1 ∨ E3
On aurait aussi pu écrire :
E1 ∨ E2 ¬E2 ∨ E3
E1 ∨ E3
ou encore :
{E1 , E2 } {¬E2 , E3 }
{E1 , E3 }
2. On considère les clauses
C1 : P
C2 : ¬P
La résolvante de C1 et C2 est la contradiction, encore associée à la clause vide
C3 : ⊥
On aurait aussi pu écrire :
P ¬P
⊥
ou encore :
{P } {¬P }
{}
Etant données les formules F1 , F2 , . . . , Fn , G, pour vérifier F1 ∧ F2 ∧ . . . ∧ Fn |= G il suffit d’appliquer
le théorème de preuve par réfutation à la FNC associée à F1 ∧ F2 ∧ . . . ∧ Fn ∧ ¬G et de montrer qu’on
dérive la clause vide par résolution.
C1 : P0 ∨ P1
C2 : ¬P1 ∨ P0
C3 : ¬P0 ∨ P1
C¬G : ¬P0 ∨ ¬P 1
C4 = (C1, C2) : P0
C5 = (C3, C¬G) : ¬P0
C6 = (C4, C5) : ⊥
3
1.4 Algorithme de Davis, Putnam, Loveland
L’algorithme de Davis, Putnam et Loveland propose une stratégie de dérivation par réfutation ap-
pliquée à un ensemble de clauses à partir de règles de simplification et de la règle de cut. Etant donné un
littéral l, on note le complémentaire de ce littéral par lc . L’algorithme se décline de façon suivante :
1. Enlever les tautologies (autrement les clauses contenant un littéral et son complémentaire).
2. Si une clause mono-littérale est présente, c’est-à-dire se réduit au littéral l, supprimer toutes les
clauses contenant le littéral l et enlever dans toutes les autres clauses toutes les occurences de lc .
3. Si le littéral l apparaı̂t dans certaines clauses et que le littéral lc n’apparaı̂t pas, enlever toutes les
clauses contenant l.
4. Si une clause C a tous ses littéraux présents dans une clause C ′ , supprimer C ′ .
5. Si le littéral l ainsi que son complémentaire lc sont présents dans l’ensemble de clauses, remplacer
celui-ci par deux ensembles de clauses :
— le premier obtenu en enlevant toutes les clauses contenant l et toutes les occurrences de lc ;
— le second obtenu en enlevant toutes les clauses contenant lc et toutes les occurrences de l.
par la règle 2 :
{D ∨ ¬E, D ∨ E, A ∨ ¬B, ¬A ∨ B, ¬A ∨ B ∨ C, A ∨ ¬B ∨ ¬C}
par la règle 3 :
{A ∨ ¬B, ¬A ∨ B, ¬A ∨ B ∨ C, A ∨ ¬B ∨ ¬C}
par la règle 4 :
{A ∨ ¬B, ¬A ∨ B, A ∨ ¬B ∨ ¬C}
par la règle 3 :
{A ∨ ¬B, ¬A ∨ B}
par la règle 5 :
{B}, {¬B}
par la règle 2 :
{}, {}
Noter que lorsqu’on enlève toutes les occurrences de l à la clause l, on obtient la clause vide, ce qui est
différent que de supprimer la clause.
4
aux individus et à la possibilité d’une quantification nécessite la prise en compte d’un traitement plus fin
et détaillé de la preuve. Afin de pouvoir se ramener aux algorithmes utilisés en calcul propositionnel, la
mise sous forme normale d’une formule intègre deux étapes supplémentaires, appelées prénexification et
skolemisation. Enfin, le déroulement d’une preuve dans le cadre de la résolution fait appel à un domaine
de référence particulier appelé Domaine de Herbrand, sur lequel est employé un mécanisme d’unification
des variables intervenant dans les prédicats utiliés pour produire une résolvante.
Exemple 6 La logique des prédicats permet, par exemple, d’énoncer les propriétés suivantes :
1. Tout nombre rationnel est un nombre réel : ∀x(RATIONNEL(x) → REEL(x))
2. Il existe un nombre qui est premier : ∃xPREMIER(x)
3. Pour tout nombre x il existe un nombre y tel que x < y : ∀x∃yPLUSPETIT(x, y)
Exemple 7 Dans la formule ∀xP (x, y) ∧ ∃yQ(y), x est liée, y est à la fois libre et liée.
Q1 x1 Q2 x2 . . . Qn xn G
Théorème 3 Pour toute formule F , il existe une formule F ′ sous forme prénexe et équivalente à F .
5
Exemple 8
2.2 Skolemisation
L’idée de la skolemisation repose sur le constat suivant :
— écrire ∃yP (y) signifie qu’il existe dans le domaine de la variable y une valeur a pour laquelle P (a)
est vraie ;
— écrire ∀x1 ∀x2 , . . . , ∀xn ∃yP (y) signifie qu’il existe une valeur a qui dépend de x1 , x2 , . . . , xn pour
laquelle P (a) est vraie, et par conséquent cette valeur a est fonction de x1 , x2 , . . . , xn ce qui peut
s’écrire P (f (x1 , x2 , . . . , xn )).
Définition 6 Soit Q1 x1 Q2 x2 . . . Qn xn G une formule F mise sous forme prénexe. On appelle forme de
Skolem de F la formule obtenue en enlevant de F tous les quantificateurs ∃xi et en remplaçant chacune
des variables xi quantifiée avec ∃ par une fonction fi (xj1 , xj2 , . . . , xjk ) où xj1 , xj2 , . . . , xjk sont les k
variables quantifiées par des ∀ placés devant ∃xi . Lorsqu’il n’y a aucun quantificateur ∀ devant ∃xi , on
introduit une constante (qui n’est rien d’autre qu’un symbole fonctionnel d’arité 0 désignant une valeur
du domaine).
Théorème 4 (Skolem) Soit F une formule de la logique des prédicats, soit F S la forme de Skolem de
F . F est inconsistante si et seulement si F S est inconsistante.
6
Exemple 10 On considère les formules suivantes :
{P (a), R(a), Q(a, a), P (f (a)), R(f (a)), Q(a, f (a)), Q(f (a), a), Q(f (a), f (a)), P (f (f (a))), . . .}.
Dans une interprétation de Herbrand associée à un ensemble F de formules, le domaine est l’univers
de Herbrand associé à F ; une interprétation de Herbrand peut se résumer alors au sous-ensemble de la
base de Herbrand dont les éléments sont vrais, et est appelée modèle de Herbrand.
Théorème 5 (Herbrand) Un ensemble de clauses est insatisfiable si et seulement s’il n’a pas de modèle
de Herbrand.
Ce résultat permet d’étendre à la logique des prédicats les techniques de preuve utilisées en logique
propositionnelle : pour prouver qu’une formule peut être déduite d’un ensemble de formules, on utilise
le théorème de preuve par réfutation après avoir transformé toutes les formules en clauses prénexes et
skolemisées. La question reste de savoir comment par exemple utiliser la règle du cut avec des prédicats
construits sur la base de Herbrand. Ainsi, est-il possible de produire une résolvante à partir des deux
clauses suivantes (dont on suppose qu’elles sont quantifiées universellement) : C1 = P (x) ∨ Q(a, x),
C2 = ¬P (f (a)) ∨ R(y) ? Puisque f (a) désigne une valeur obtenue dans l’univers de Herbrand contenant
la constante a, il est possible d’affecter cette valeur particulière à la variable x, ce qui permet effective-
ment de produire la résolvante C3 = Q(a, f (a)) ∨ R(y), autrement dit,
7
2.4 Unification et résolution en logique des prédicats
L’algorithme d’unification, proposé par Robinson, décrit comment effectuer dans deux mêmes atomes
(prédicats avec des termes dans les parenthèses) la substitution d’un terme à un autre, de manière
systématique et quand c’est possible. La séquence des substitutions obtenue jusqu’à obtenir deux atomes
identiques est appelée Plus Grand Unifieur.
Exemple 11
— Soient les deux atomes P (f (x, 2, g(z))) et P (f (g(1), y, g(4))), la séquence (x = g(1))(y = 2)(z = 4)
est un plus grand unifieur.
— Soient les deux atomes Q(x, f (x)) et Q(f (y), y), la première substitution réalisable est (x = f (y))
qui conduit alors à pousuivre l’algorithme sur Q(f (y), f (f (y))) et Q(f (y), y) : ces deux atomes ne
sont pas unifiables car y est une variable du terme f (f (y)). Par conséquent, il n’existe pas de plus
grand unifieur pour Q(x, f (x)) et Q(f (y), y).
L’idée est de tenter de trouver à chaque étape de la résolution le plus grand unifieur permettant de
produire une résolvante. En procédant par réfutation, il s’agit d’atteindre en un nombre fini d’étapes la
clause vide.
8
5. Il y a des crimes : ∃xCRIME(x)
6. On veut démontrer qu’il y a des gens malhonnêtes non arrêtés : ∃y(MALHONNETE(y)∧¬ARRETE(y))
En considérant la négation de la dernière formule (qui est à établir) pour pouvoir en chercher une preuve
par réfutation, la mise sous forme clausale donne :
1. ∀x(¬CRIME(x) ∨ ∃yCOMMIS(y, x))
2. ∀y∀x(¬CRIME(x) ∨ ¬COMMIS(y, x) ∨ MALHONNETE(y))
3. ∀y(¬MALHONNETE(y) ∨ ARRETE(y))
4. ∀y(¬MALHONNETE(y) ∨ ¬ARRETE(y) ∨ ∀x(¬CRIME(x) ∨ ¬COMMIS(y, x)))
5. ∃xCRIME(x)
6. ∀y(¬MALHONNETE(y) ∨ ARRETE(y))
L’étape de prénexification donne à son tour :
1. ∀x∃y(¬CRIME(x) ∨ COMMIS(y, x))
2. ∀y∀x(¬CRIME(x) ∨ ¬COMMIS(y, x) ∨ MALHONNETE(y))
3. ∀y(¬MALHONNETE(y) ∨ ARRETE(y))
4. ∀y∀x(¬MALHONNETE(y) ∨ ¬ARRETE(y) ∨ ¬CRIME(x) ∨ ¬COMMIS(y, x))
5. ∃xCRIME(x)
6. ∀y(¬MALHONNETE(y) ∨ ARRETE(y))
Par skolemisation, on obtient finalement :
1. ¬CRIME(x) ∨ COMMIS(f (x), x)
2. ¬CRIME(x) ∨ ¬COMMIS(y, x) ∨ MALHONNETE(y)
3. ¬MALHONNETE(y) ∨ ARRETE(y)
4. ¬MALHONNETE(y) ∨ ¬ARRETE(y) ∨ ¬CRIME(x) ∨ ¬COMMIS(y, x)
5. CRIME(a)
6. ¬MALHONNETE(y) ∨ ARRETE(y)
Pour établir que 6 est bien conséquence des énoncés 1, 2, 3, 4, 5, on construit une déduction de la clause
vide par résolution :
1. Clause initiale : ¬CRIME(x) ∨ COMMIS(f (x), x)
2. Clause initiale : ¬CRIME(x) ∨ ¬COMMIS(y, x) ∨ MALHONNETE(y)
3. Clause initiale : ¬MALHONNETE(y) ∨ ARRETE(y)
4. Clause initiale : ¬MALHONNETE(y) ∨ ¬ARRETE(y) ∨ ¬CRIME(x) ∨ ¬COMMIS(y, x)
5. Clause initiale : CRIME(a)
6. Clause initiale : ¬MALHONNETE(y) ∨ ARRETE(y)
7. Résolvante de 1 et 5 : COMMIS(f (a), a)
8. Résolvante de 2 et 7 : ¬CRIME(a) ∨ MALHONNETE(f (a))
9. Résolvante de 5 et 8 : MALHONNETE(f (a))
10. Résolvante de 4 et 7 : ¬MALHONNETE(f (a)) ∨ ¬ARRETE(f (a)) ∨ ¬CRIME(a)
11. Résolvante de 5 et 10 : ¬MALHONNETE(f (a)) ∨ ¬ARRETE(f (a))
12. Résolvante de 9 et 11 : ¬ARRETE(f (a))
13. Résolvante de 6 et 12 : ¬MALHONNETE(f (a))
14. Résolvante de 9 et 13 : ⊥