Vous êtes sur la page 1sur 9

Cours de logique 3a, synthèse

1 Calcul propositionnel
Définition 1 On appelle littéral une proposition ou la négation d’une proposition.

Définition 2 Une clause est une disjonction de littéraux.

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).

Exemple 2 Soit la formule propositionnelle (P → ¬Q) ∧ (R ∨ ¬P ). Sa table de vérité est


P Q R ¬Q P → ¬Q ¬P R ∨ ¬P (P → ¬Q) ∧ (R ∨ ¬P )
0 0 0 1 1 1 0 0
0 0 1 1 1 1 1 1
0 1 0 0 1 1 0 0
0 1 1 0 1 1 1 1
1 0 0 1 1 0 0 0
1 0 1 1 1 0 0 0
1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0
Les lignes de la table de vérité qui attribuent 1 à la formule fournissent les modèles de cette formule et
permettent d’obtenir directement la FND associée : (¬P ∧ ¬Q ∧ R) ∨ (¬P ∧ Q ∧ R). Dans cette formule,
il est aisé de voir que l’on peut effectuer la mise en facteur de (¬P ∧ R) sur (¬Q ∨ Q) :

(¬P ∧ ¬Q ∧ R) ∨ (¬P ∧ Q ∧ R) ≡ (¬P ∧ R) ∧ (¬Q ∨ Q)


≡ ¬P ∧ R

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 :

(¬P ∧ ¬Q ∧ R) ∨ (¬P ∧ Q ∧ R) ≡ (¬P ∨ ¬P ) ∧ (¬P ∨ Q) ∧ (¬P ∨ R) ∧


(¬Q ∨ ¬P ) ∧ (¬Q ∧ Q) ∧ (¬Q ∧ R) ∧
(R ∨ ¬P ) ∧ (R ∨ Q) ∧ (R ∨ R)
≡ ¬P ∧ (¬P ∨ Q) ∧ (¬P ∨ R) ∧ (¬Q ∨ ¬P ) ∧
(¬Q ∨ R) ∧ (R ∨ ¬P ) ∧ (R ∨ Q) ∧ R
≡ ¬P ∧ R

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}}.

1.2 Preuve en logique propositionnelle


Définition 4 Soient F1 , F2 , . . . , Fn des formules propositionnelles, G une formule propositionnelle. G
est une conséquence logique de F1 , F2 , . . . , Fn si et seulement si G est vraie quand F1 ∧ F2 ∧ . . . ∧ Fn est
vraie. Autrement dit, G est une conséquence logique de F1 , F2 , . . . , Fn si et seulement si tout modèle de
F1 ∧ F2 ∧ . . . ∧ Fn est un modèle de G. On écrit alors F1 ∧ F2 ∧ . . . ∧ Fn |= G ou {F1 , F2 , . . . , Fn } |= G.

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.

Théorème 2 (Preuve par réfutation, preuve par l’absurde) F1 ∧ F2 ∧ . . . ∧ Fn |= G si et seulement si


F1 ∧ F2 ∧ . . . ∧ Fn ∧ ¬G est inconsistant, ce qu’on note {F1 , F2 , . . . , Fn } ∪ ¬G |= ⊥

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 :

¬P ∨ ¬Q1 ∨ ¬Q2 ∨ . . . ∨ Qn P ∨ ¬Q′1 ∨ . . . ∨ ¬Q′m


¬Q1 ∨ ¬Q2 ∨ . . . ∨ Qn ∨ ¬Q′1 ∨ . . . ∨ ¬Q′m

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.

Exemple 4 Soient les formules


F 1 : P0 ∨ P1
F 2 : P1 → P0
F 3 : P0 → P1
G : P0 ∧ P 1
On veut montrer {F 1, F 2, F 3} |= G, autrement dit et à partir d’une preuve par réfutation, que {F 1, F 2, F 3, ¬G} |=
⊥. Pour pouvoir utiliser la résolution, on commence par réécrire chaque formule sous forme clausale avant
de procéder au calcul des résolvantes possibles ; on obtient :

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.

Exemple 5 En partant de l’ensemble de clauses

{H ∨ ¬H ∨ G ∨ A, G, ¬G ∨ D ∨ ¬E, ¬G ∨ D ∨ E, ¬G ∨ A ∨ ¬B, ¬A ∨ B, ¬A ∨ B ∨ C, A ∨ ¬B ∨ ¬C}

on obtient, par la règle 1 :

{G, ¬G ∨ D ∨ ¬E, ¬G ∨ D ∨ E, ¬G ∨ A ∨ ¬B, ¬A ∨ B, ¬A ∨ B ∨ C, A ∨ ¬B ∨ ¬C}

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.

2 Calcul des prédicats


La logique propositionnelle s’intéresse au fait que des propriétés soient vraies ou fausses. La logique
des prédicats (ou logique du Premier Ordre) étend le langage de la logique propositionnelle en intégrant
la notion d’individu sur lesquels portent ces propriétés. L’ensemble des individus en question est appelé
domaine et il est alors possible d’employer des variables qui parcourent un domaine donné. La question se
pose alors de quantifier ces variables : une propriété donnée vaut elle pour toutes les valeurs d’un domaine
ou existe-t’il au moins une valeur qui la vérifie ? De plus, il devient aussi possible d’appliquer des fonctions
aux variables qui aux valeurs d’un domaine font correspondre d’autres valeurs. Le fait d’étendre le langage

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)

Définition 5 Etant donnée une formule F ,


— Une occurrence d’une variable de F est dite liée si et seulement si elle apparaı̂t dans le champs
d’un quantificateur de F . Une occurrence d’une variable est dite libre si et seulement si elle n’est
pas liée.
— Une variable de F est dite liée si au moins une occurrence de cette variable est liée, elle est dite
libre si au moins une occurrence de cette variable est libre.

Exemple 7 Dans la formule ∀xP (x, y) ∧ ∃yQ(y), x est liée, y est à la fois libre et liée.

2.1 Mise sous forme prénexe


Une formule F en logique des prédicats est dite sous forme prénexe si F est de la forme

Q1 x1 Q2 x2 . . . Qn xn G

où chaque Qi est soit ∀, soit ∃, et G ne contient aucun quantificateur.

Théorème 3 Pour toute formule F , il existe une formule F ′ sous forme prénexe et équivalente à F .

Méthode : prénexification d’une formule


1. Se débarraser des connecteurs → et ↔ en réécrivant la formule sous FNC
2. Changer le nom des variables liées de telle façon à ne plus avoir de variable quantifiée deux fois
3. Faire remonter tous les quantificateurs en tête de la formule F mise sous FNC en se rappelant que
les connecteurs ∨ et ∧ sont associatifs et commutatifs, et en utilisant les équivalences suivantes :
Pour x n’étant pas une variable libre de G
— ¬∃F (x) ≡ ∀x¬F (x)
— ¬∀F (x) ≡ ∃x¬F (x)
— ¬¬F ≡ F
— G ∨ ∀xF (x)) ≡ ∀x(G ∨ F (x))
— G ∨ ∃xF (x)) ≡ ∃x(G ∨ F (x))
— G ∧ ∀xG(x) ≡ ∀x(G ∧ F (x))
— G ∧ ∃xF (x)) ≡ ∃x(G ∧ F (x))

5
Exemple 8

∀xA(x) → (∃tB(t) ∨ ∃tC(t)) ≡ ¬∀xA(x) ∨ (∃tB(t) ∨ ∃tC(t))


≡ ¬∀xA(x) ∨ (∃tB(t) ∨ ∃yC(y))
≡ ∃x¬A(x) ∨ (∃tB(t) ∨ ∃yC(y))
≡ ∃x(¬A(x) ∨ (∃tB(t) ∨ ∃yC(y)))
≡ ∃x(¬A(x) ∨ ∃tB(t) ∨ ∃yC(y))
≡ ∃x∃t(¬A(x) ∨ B(t) ∨ ∃yC(y))
≡ ∃x∃t(¬A(x)∃y(∨B(t) ∨ C(y)))
≡ ∃x∃t∃y(¬A(x) ∨ B(t) ∨ C(y))

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).

Exemple 9 En considérant une constante a


— la forme skolemisée de ∃xP (x) est P (a) ;
— la forme skolemisée de ∃x∀y∀z∃t(P (x) ∧ Q(y, z, t)) est ∀y∀z(P (a) ∧ Q(y, z, f (y, z))

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.

2.3 Base de Herbrand


Définition 7 Etant donné l’ensemble de formules F = {F1 , F2 , . . . , Fn }.
— On appelle Univers de Herbrand associé à F l’ensemble des termes sans variables construits à
partir du vocabulaire des formules de F . De manière à n’avoir jamais d’univers de Herbrand vide,
lorsque ce vocabulaire ne contient pas de constante, on en introduit une.
— On appelle Base de Herbrand associée à F l’ensemble de tous les atomes sans variables construits
à partir du vocabulaire des formules de F , c’est-à-dire des formules de la forme P (t1 , t2 , . . . , tk )
où P est un symbole de prédicat de l’une des formules de F et où t1 , t2 , . . . , tk sont des éléments
de l’univers de Herbrand associé à F .

6
Exemple 10 On considère les formules suivantes :

F1 = ∀x(¬P (x) ∨ Q(x, f (x)))


F2 = ∀x(¬P (x) ∨ R(f (x)))
F3 = P (a)
F4 = ∀x∀y¬Q(x, y)

L’univers de Herbrand associé à {F1 , F2 , F3 , F4 } est

{a, f (a), f (f (a)), f (f (f (a))), . . .}.

La base de Herbrand associée à {F1 , F2 , F3 , F4 } est

{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,

P (x) ∨ Q(a, x) ¬P (f (a)) ∨ R(y)


Q(a, f (a)) ∨ R(y)
pour x = f (a).

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.

PlusGrandUnifieur fonction Unification (Atomes P1, P2)


Subst = {};
Tant que (Subst (P1) != Subst (P2) faire} {
Soient t1, t2 dans P1, P2 tels que t1 != t2;
Si (aucun n’est une variable ou
l’un est une variable contenue dans l’autre)
alors P1 et P2 ne sont pas unifiables;
sinon {
Soit x une variable parmi P1, P2;
Soit t celui des termes de P1, P2 qui n’est pas dans x;
Subst = Subst.(x=t);
}
}
retourner Subst;

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.

Exemple 12 Soient les énoncés suivants :


— Pour tout crime, il y a quelqu’un qui l’a commis
— Seuls les gens malhonnêtes commettent des crimes
— Les gens malhonnêtes arrêtés ne commettent pas de crimes
— Il y a des crimes
A partir de ces énoncés, on veut établir qu’il y a des gens malhonnêtes non arrêtés. On introduit les
prédicats suivants :
— y est arrêté : ARRETE(y)
— y est malhonnête : MALHONNETE(y)
— y commet x : COMMET(y, x)
— x est un crime : CRIME(x)
Le codage des énoncés en logique des prédicats donne alors :
1. Pour tout crime, il y a quelqu’un qui l’a commis : ∀x(CRIME(x) → ∃yCOMMIS(y, x))
2. Seuls les gens malhonnêtes commettent des crimes : ∀y∀x((CRIME(x)∧COMMIS(y, x)) → MALHONNETE(y))
3. Ne sont arrêtés que les gens malhonnêtes : ∀y(MALHONNETE(y) → ARRETE(y))
4. Les gens malhonnêtes arrêtés ne commettent pas de crimes :
∀y((MALHONNETE(y) ∧ ARRETE(y)) → ¬∃x(CRIME(x) ∧ COMMIS(x, y)))

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 : ⊥

Vous aimerez peut-être aussi