Exemple

publicité
Ecole Supérieure d’Ingénieurs de Luminy
Département Informatique
LOGIQUE FORMELLE
ET
DEMONSTRATION AUTOMATIQUE
Notes de cours
Henry KANOUI
Octobre 2006
Logique et démonstration automatique – H. KANOUI
1
INTRODUCTION
1) décrire les structures du raisonnement déductif : démonstrations rigoureuses, mécanisation
des preuves
2) syntaxe : langage de symboles sans référence au contenu.
définit les énoncés bien formés ou suites de symboles bien agencés ou formules
ex : une grammaire du français définit les phrases correctes
mais qui peuvent ne pas avoir de sens
règles d’inférence qui permettent de déduire de nouvelles formules par un procédé
« mécanique » toujours sans faire référence au sens.
C’est ce qu’on appelle un système formel
3) sémantique : donner un sens aux symboles et par suite aux formules
Une interprétation définit un monde possible dans lequel les formules sont vraies ou fausses
4) lien syntaxe - sémantique
Partant d’un ensemble de formules E, d’une formule f et d’une interprétation I telles que :
- la formule f se déduit de l’ensemble des formules de E
- les formules de E sont toutes vraies par l’interprétation I
Questions :
- est-ce que la formule f est vraie (resp. fausse) dans l’interprétation I ?
- est-ce que la formule f est à la fois vraie et fausse dans l’interprétation I ?
Logique et démonstration automatique – H. KANOUI
2
PLAN DU COURS
Horaires : 20 heures de cours et TD
Bibliographie
- Outils Logiques pour l’Intelligence Artificielle – JP Delahaye – Eyrolles (1986)
- First-Order Logic and Automated Theorem Proving – M. Fitting – Springer (1996)
- Introduction to mathematical logic – E. Mendelson – 4ème ed. – Chapman & Hall (1996)
- Gödel, Escher, Bach: les brins d’une guirlande éternelle – D. Hofstadter – InterEditions (1985)
1. Systèmes formels
• Définitions
• Propriétés
• Exemples
2. Calcul propositionnel
• Syntaxe
• Sémantique : notion
d’interprétation et de modèle
• Modèle de Herbrand
• Propriétés et principaux résultats
Logique et démonstration automatique – H. KANOUI
3. Calcul des prédicats
• Syntaxe
• Substitutions, unification
• Sémantique : interprétations et modèles
• Propriétés et principaux résultats
4. Eléments de démonstration automatique
• Tableaux sémantiques
• Résolution sans variables
• Résolution avec variables
• Stratégies : définitions et propriétés
3
SYSTEMES FORMELS
Définition :
S = < Σ , F, A , R >
Σ:
F ⊂ Σ* :
A⊂F:
R:
alphabet au moins dénombrable
formules bien formées (récursif )
axiomes (récursif)
règles d’inférences : f1 , f2 ,…, fn |-r g
Déduction dans un S.F.
Une déduction à partir de h1 , h2 ,…, hn (hypothèses) est une suite finie f1 , …, fp telle que ∀ i :
fi est un axiome
ou fi ∈ { h1 , h2 ,…, hn }
ou il existe fi0 , fi1 ,…, fik placés avant fi et une règle r tels que fi0 , fi1 ,…, fik |-r fi
On écrit alors : h1 , h2 ,…, hn |-S fp
Logique et démonstration automatique – H. KANOUI
4
Théorème d’un S.F.
t est un théorème de S ssi
|-S t On écrit : t ∈ TS
Remarque
Les manipulations sont purement syntaxiques comme dans tout S.F.
Même si une interprétation s’impose à l’esprit, tout ce que l’on pense être vrai n’est pas
forcément un théorème
Il se peut qu’il n’y ait aucune adéquation entre le formalisme, les règles d’inférence et la
vérité
Par exemple 1+1+1 = 111 ∉ TS car 1+1+1 = 111 ∉ F
Logique et démonstration automatique – H. KANOUI
5
PROPRIETES DES SYSTEMES FORMELS
Cohérent :
il existe des fbf qui ne sont pas des théorèmes
Décidable :
pour tout f ∈ F le problème « f ∈ TS » a une réponse oui ou non (algorithme)
Correct :
si f ∈ TS » alors f est vraie notion d’interprétation (sémantique)
Complet :
f ∈ TS » ssi f est vraie
Si le S.F. comporte un symbole de négation (¬)
Consistant : il n’existe pas de fbf f∈F telle que f∈TS et ¬f∈TS
Catégorique : pour tout f ∈ F on a f ∈ TS ou ¬ f ∈ TS
Saturé : pour tout f∈F si f∉TS alors S∪{¬f} est inconsistant
Logique et démonstration automatique – H. KANOUI
6
RESULTATS GENERAUX
Proposition 1
Si h1,…,hk |- f1 et h1,…,hk |- f2 et … et h1,…,hk |- fn et f1,…,fn |- g alors h1,…,hk |- g
Proposition 2
L’ensemble des déductions est récursif
C’est à dire qu’il existe un programme qui pour toute suite finie d’éléments f1,…,fn de Σ*
indique en un temps fini si cette suite est une déduction ou pas.
Proposition 3
L’ensemble des théorèmes est récursivement énumérable
C’est à dire qu’il existe un programme qui calcule la liste de tous les théorèmes de S.
Proposition 4
Il existe des SF pour lesquels l’ensemble des théorèmes n’est pas récursif .
Ainsi, alors qu’il y a toujours un moyen algorithmique qui détermine en un temps fini si une
suite de formule est une déduction ou pas, il n’y en a pas en général qui détermine si une fbf
est un théorème ou pas.
Logique et démonstration automatique – H. KANOUI
7
INTERPRETATION DANS LES SYSTEMES FORMELS
SF : formaliser ou modéliser un univers concret.
établir une correspondance entre le SF et cet univers de sorte que :
les formules du SF aient un sens dans l’univers.
les axiomes du SF soient des énoncés « vrais » dans l’univers
les règles d’inférence du SF soient des raisonnement valides dans l’univers.
On souhaite que la correspondance soit complète
tous les énoncés vrais de l’univers correspondent à des théorèmes.
une telle correspondance est une interprétation du SF c’est un isomorphisme du SF dans
l’univers)
système pg:
- alphabet Σ = {o, p, g }
- fbf
F = {on p ok g om ; m,n,k>0}
- axiomes
A = {x p o g x o ; x non vide}
- règles
R = {x p y g z |- x p y o g z o ; x,y,z non vides}
On remarque que l’ensemble T des théorèmes est récursif.
Logique et démonstration automatique – H. KANOUI
8
1ère interprétation pour le système pg
I[p] = ‘+’
I[g] = ‘=’
I[o] = ‘1’
…
I[on] = ‘n’
isomorphisme entre et N muni de
l’addition entre 2 entiers
2ème interprétation pour le système pg
I’[p] = ‘=’
I’[g] = ‘oté de’
I’[o] = ‘1’
…
I’[on] = ‘n’
isomorphisme entre pg et N
muni de la soustraction entre 2 entiers
Ces 2 interprétations modélisent donc correctement N pour les opérations indiquées
Logique et démonstration automatique – H. KANOUI
9
système pg modifié
Ajoutons un 2ème schéma d’axiomes :
A’ = {x p o g x ; x non vide}
f1 : oo p o g oo
est un théorème (ax 2)
f2 : oo p oo g ooo est un théorème (règle)
=> contradiction avec le monde extérieur
I[f1] est 2+1=2
I[f2] est 2+2=3
Explication : contradiction interne au système
o p o g oo (ax 1)
o p o g o (ax 2)
interprété par
interprété par
1+1=2
1+1=1
Ce 2ème axiome a « brisé » l’isomorphisme entre le SF et le monde réel, donc entre les
symboles et les concepts
Que faire ? changer l’interprétation !:
I[p]= ‘+’ et I[g] = ‘≥’
Les axiomes sont alors interprétés par :
et les théorèmes contradictoires par :
Logique et démonstration automatique – H. KANOUI
1+1≥2 et 1+1≥1
2+1≥2 et 2+2≥3
10
Complétude
Le SF pg d’origine avec la 1ère interprétation est complet : toute addition de 2 nombres est
représentée par un théorème (elle est démontrable).
Il est correct (aucune assertion fausse n’est un théorème).
Après modification du SF pg, il n’en est plus de même. Il y a des vérités exprimables qui ne sont
plus des théorèmes.
Par exemple : 2+3≥1 est exprimé par la fbf : oo p ooo g o qui n’est pas un théorème.
A : x p o g x o, comme x est non vide, le nombre de « o » après le « g » est >1.
A’ : x p o g x , un seul « o » entre le « p » et le « g ».
Règle
x p y g z |- x p y o g z o
engendre plus de 1 « o » après le g (z n’est pas vide).
La fbf : oo p ooo g o ne peut donc pas être produite et donc n’est pas un théorème.
Explication : I est « trop large », pas assez rigoureuse.
Que faire ? Il y a 2 façons d’y remédier :
- ajouter de nouvelles règles et rendre le système plus fort
- restreindre l’interprétation.
I[g] = « supérieur de 1 ou égal à »
la fbf : oo p ooo g o n’est plus un théorème.
Logique et démonstration automatique – H. KANOUI
11
CALCUL PROPOSITIONNEL ou LOGIQUE PROPOSITIONNELLE
Définition du S.F. CP0 (syntaxe)
Σ = { variables propositionnelles } ∪ { ¬ , → , (, ) }
F = le plus petit ensemble contenant les variables propositionnelles et fermé pour la règle :
si f et g ∈ F, alors ¬f ∈ F et (f → g) ∈ F.
A ={ (f → (g → f )) pour f , g ∈ F } ∪
{ ((f → (g → h )) → ((f → g) → (f → h)) ; f,g,h∈F} ∪
{ (¬f → ¬g ) → (g → f) pour f , g ∈ F }
R = {f , f → g |- g pour f , g ∈ F }
f∧g
f∨g
f↔g
pour
pour
pour
modus ponens
¬ (f → ¬g )
¬f → g
(f → g) ∧ (g → f)
Logique et démonstration automatique – H. KANOUI
12
Proposition 1
Pour toute fbf A du calcul propositionnel, la fbf (A→A) est un théorème : |- (A→A)
Proposition 2
Si A1,A2,…,An-1 |- (An→B) alors A1,A2,…,An |- B
Proposition 3 : Théorème de déduction (réciproque de la précédente)
Si A1,A2,…,An |- B alors A1,A2,…,An-1 |- (An→B)
Exemple
|- (A→(B→C)) → (B→(A→C)) ssi
(A→(B→C)) |- (B→(A→C)) ssi
(A→(B→C)) , B |- (A→C) ssi
(A→(B→C)) , B , A |- C.
Proposition 4 : Toutes les formules suivantes sont des théorèmes.
((A→B) →((B→C) →(A→C)))
(B→((B→C) →C))
(¬B→(B→C))
(¬¬B→B)
Logique et démonstration automatique – H. KANOUI
(B→¬¬B)
((A→B) →(¬B→¬A))
(B→(¬C→¬ (B→C)))
((B→A) →((¬B→A) →A)))
13
INTERPRETATION DU CP0 (SEMANTIQUE)
Définition
Une interprétation est une application I : { formules atomiques } → { V, F }. C’est à dire
qu’on se donne la valeur de vérité (V ou F) pour chaque variable propositionnelle. I est alors
prolongée sur tout F par :
F si I [f ] = V
I [¬f ] =
V si I[f]=F ou I[g]=V
I[f→g]=
V si I [f ] = F
I [f ∧ g ]=
F sinon
V si I [f ]=I [g ]=V
F sinon
I [f ↔ g ] =
F sinon
V si I [f]=V ou I[g]=V
I[f∨g]=
F sinon
Logique et démonstration automatique – H. KANOUI
V si I [f ] = I [g ]
14
Définitions
f est une tautologie si I [f ] = V pour toute interprétation I.
On écrit : |= f.
{f1 ,…, fn} est satisfiable ou consistant si il existe une interprétation I tq I [f1 ] =…= I [fn ] = V
On dit que I est un modèle de { f1 ,…, fn }. Sinon { f1 ,…, fn } est insatisfiable ou inconsistant
f est inconsistant ssi ¬f est une tautologie.
g est une conséquence de f1 ,…, fn si chaque fois que
I [f1 ] =…= I [fn ] = V on a I [g ] = V.
ou : tout modèle de { f1 ,…, fn } est un modèle de g.
On écrit : f1 ,…, fn |= g.
Proposition 5
Si A et B sont 2 fbf on a :
|= (A→B) ssi A|=B
|= (A↔B) ssi A|=B et B|=A (ce qu’on écrit : A≡B)
si |=A et si |=(A→B) alors |=B
|= (A∧B) ssi |=A et |=B
si |=A ou |=B alors |= (A∨B)
Logique et démonstration automatique – H. KANOUI
15
THEOREMES FONDAMENTAUX
Proposition 6 (théorème de correction)
Pour toute fbf A: si |- A alors |=A
Autrement dit, les formules qui sont des théorèmes (validité syntaxique) sont aussi des
tautologies (validité sémantique. Le système est « correct » : tout ce qu’on peut déduire est
« vrai »)
Proposition 7
Soit A une tautologie utilisant les propositions p1,…,pn et B1,…,Bn des formules quelconques.
La formule A’ obtenue à partir de A en remplaçant chaque pi par Bi est une tautologie.
Proposition 8 (théorème de complétude)
Pour toute formule A, si |=A alors |-A
Autrement dit, toutes les tautologies (validité sémantique) sont des théorèmes (validité
syntaxique) : tout ce qui est « vrai » peut être déduit.
Avec la prop. 6, il y a donc équivalence entre ce qui est « vrai » et ce qu’on peut démontrer. Le
SF CP0 est une modélisation correcte du calcul des propositions.
Logique et démonstration automatique – H. KANOUI
16
Corollaire 1 (théorème de décidabilité)
Le calcul propositionnel est décidable ou encore l’ensemble T des théorèmes du CP0 est
récursif.
Corollaire 2
Pour toutes formules B1,…,Bn et A, on a :
B1,…,Bn |=A ssi B1,…,Bn |-A
Proposition 9 (théorème de compacité)
Soit K un ensemble de formules.
Si pour toute partie finie K’ de K il existe une interprétation I partout vraie sur K’, alors il
existe une interprétation J partout vraie sur K.
Proposition 10 (théorème de finitude)
Soit K un ensemble de formules et B une formule. Si K|=B alors il existe une partie finie K’ de
K telle que K’|=B .
Logique et démonstration automatique – H. KANOUI
17
Proposition 11
Si K est un ensemble de formules et A une formule on a :
K |= A ssi K |- A
Proposition 12 (méthode de réfutation)
Les 3 énoncés suivants sont équivalents :
f1 ,…, fn |= g
(E1)
|= [f1 ∧…∧ fn → g]
(E2)
{f1 ,…, fn , ¬g} est insatisfiable
(E3)
En d’autres termes, pour prouver g à partir de f1 ,…, fn , on montre que ¬g introduit une
contradiction (raisonnement par l’absurde)
Logique et démonstration automatique – H. KANOUI
18
FORMES NORMALES
Littéral
C’est une formule atomique ou la négation d’une formule atomique
Clause
C’est une disjonction de littéraux : f ∈ F est une clause si
f = ∨i=1,..n pi où chaque pi est un littéral
Clause duale
C’est une conjonction de littéraux : f ∈ F est une clause si
f = ∧i=1,..n pi où chaque pi est un littéral
Forme normale conjonctive
C’est une conjonction de clauses : f ∈ F est sous forme normale conjonctive si f = ∧i=1,..n ci où
On a : f = ∧i [∨j,i pj,i ]
chaque ci est une clause appelée conjoint de f.
Forme normale disjonctive
C’est une disjonction de clauses duales : f ∈ F est sous forme normale disjonctive si f = ∨i=1,..n
di où chaque di est une clause duale appelée disjoint de f. On a : f = ∨i [∧j,i pj,i ]
Logique et démonstration automatique – H. KANOUI
19
Théorème :
Toute formule f ∈ F peut être mise sous f.n. conjonctive
Remplacer :
f↔g
f→g
f∨(g∧h)
(f∧g)∨h
¬(f∧g)
¬(f∨g)
¬¬ f
par
(f→g)∧(g→f)
¬f ∨ g
( f ∨ g ) ∧ (f ∨ h )
( f ∨ h ) ∧ (g ∨ h )
¬f ∨ ¬g
¬f ∧ ¬g
f
Théorème
Toute formule f ∈ F peut être mise sous forme normale disjonctive
Remplacer :
f↔g
par
f→g
f ∧(g∨h)
(f∨g)∧h
¬(f∧g)
¬(f∨g)
¬¬ f
Logique et démonstration automatique – H. KANOUI
(f→g)∧(g→f)
¬f ∨ g
( f ∧ g ) ∨ (f ∧ h )
( f ∧ h ) ∨ (g ∧ h )
¬f ∨ ¬g
¬f ∧ ¬g
f
20
CALCUL des PREDICATS ou LOGIQUE du 1er ORDRE
SYMBOLES – ALPHABET : Σ
Σ est la réunion des ensembles disjoints et dénombrables
les parenthèses : « (» et « ) »
les symboles logiques : (implique), ¬ (non)
le quantificateur universel : ∀ (pour tout)
symboles fonctionnels : {a, b, c, f, g, h, …}
A tout s.f.on associe un entier n : son rang. Les symboles fonctionnels de rang 0 sont les
constantes : a, b, c, …
variables : V = {x, y, z, …}
symboles relationnels : {p, q, r, …}
A tout s.r. on associe un entier n : son rang. Les symboles relationnels de rang 0 sont les
propositions
Logique et démonstration automatique – H. KANOUI
21
EXPRESSIONS : Σ*
expression : suite finie de symboles.
expression terminale : ne contient pas de variables.
Termes : T
plus petit sous ensemble de Σ* tel que :
toute variable est un terme,
si f est un s.f. de rg n et t1,… ,tn ∈ T alors f (t1,… ,tn) ∈ T
cas particulier n = 0 : f() notée f est une constante ∈ T
Formules atomiques ou prédicats : FA
plus petit sous ensemble de Σ* tel que :
si r est un s.r. de rg n et t1, … ,tn∈T alors r(t1,…,tn) ∈ FA.
cas particulier n = 0 : r() notée r est une proposition
Formules : F
C’est le plus petit sous ensemble de Σ* tel que :
toute formule atomique est une formule : FA ⊂ F
si p et q ∈ F et x ∈ V alors ¬p, pq et ∀x p ∈ F
Logique et démonstration automatique – H. KANOUI
22
Variables liées, variables libres
Formule
A ∈ FA
¬A
A→B
∀xA
Exemple :
Variables liées
Variables libres
{variables de A}
∅
{variables liées de A} {variables libres de A}
{var. libres de A}∪
{var. liées de A}∪
{var. libres de B}
{var. liées de B}
{var. liées de A}∪{x} {var. libres de A}- {x}
B = ∀x p(x,y,z) → (∀z q(z) → r(z))
variables(B) = {x,y,z}
var. liées(B) = {x,z}
var. libres(B) = {y,z}
une variable peut être à la fois libre et liée dans une même formule.
le « z » qui intervient dans la 1ère sous-formule n’a rien à voir avec le « z » qui intervient dans
la 2ème sous-formule.
Logique et démonstration automatique – H. KANOUI
23
Renommage de x par z dans A
A est une formule et x une variable liée de A.
B une sous-formule de A dans laquelle x n’est pas libre
z une variable qui n’apparaît pas dans A.
remplacer toute occurrence de x par z dans B,
et recommencer jusqu’à ce que x ne soit plus liée dans A.
Exemple :
A = (p(x) → ∀y ∀x r(x,y) ∧ ∀x q(x))
après renommage A = (p(x) → ∀y ∀z r(z,y) ∧ ∀u q(u))
Formule close : c’est une formule sans variable libre.
Ex : ∀x ∀y (p(x,y) → ∀z r(x,y,z))
Logique et démonstration automatique – H. KANOUI
24
DEFINITION DU S.F. CP1 (SYNTAXE)
Σ = alphabet
F = formules
définis comme précédemment
T = termes
A= {(A → (B → A ))
((A→(B→C))→((A→B) → (A→C))}
(¬A → ¬B ) → (B → A)}
∀xA(x) → A(t)}
(( D → B ) → ( D → ∀xB ))}
Ax1
Ax2
Ax3
Ax4
Ax5
A, B, C, D ∈ F, t ∈ T , x ∈ V et x n’est pas libre dans D
R = {A , A→B |- B pour A , B ∈ F } modus ponens
{A |- ∀xA pour A , B ∈ F et x ∈ V } généralisation
Logique et démonstration automatique – H. KANOUI
25
Conventions d’écriture :
A∧B
pour
¬ (A → ¬B )
A∨B
pour
¬A → B
A↔B
pour
(A → B) ∧ (B → A)
∃xA
pour
¬(∀x ¬A))
On a alors en particulier :
∀x A est équivalente à ¬∃x ¬A
¬(A∧B) est équivalente à ¬A∨¬B
¬(A∨B) est équivalente à ¬A∧¬B
¬¬A est équivalente à A
Exemple de déduction : ∀x ∀y p(x,y) |- ∀z p(z,z)
f1 : ∀x ∀y p(x,y)
f2 : ∀x ∀y p(x,y) → ∀y p(z,y)
f3 : ∀y p(z,y)
f4 : ∀y p(z,y) → p(z,z)
f5 : p(z,z)
f6 : ∀z p(z,z)
Logique et démonstration automatique – H. KANOUI
hyp
Ax4
mp
Ax4
mp
gen
26
Proposition 1
A → A est un théorème. Autrement dit : |- A → A.
Proposition 2
Si
A1 ,…, An-1 |- (An → B)
alors : A1 ,…, An |- B
Proposition 3 (théorème de déduction)
A1 ,…, An , B étant des formules closes,
si :
A1 ,…, An |- B
alors : A1 ,…, An-1 |- (An → B)
Logique et démonstration automatique – H. KANOUI
27
INTERPRETATION ET MODELE DU S.F. CP1 (SEMANTIQUE)
La notion d’interprétation permet de traiter rigoureusement la notion de vérité et amène deux
questions fondamentales :
Les théorèmes du CP1 sont-ils toujours « vrais » ?
Les formules « vraies » sont-elles des théorèmes ?
Logique et démonstration automatique – H. KANOUI
28
Définitions
L est un langage du 1er ordre sur l’alphabet Σ. On définit une interprétation I en se donnant :
un ensemble non vide D appelé base de l’interprétation
une application I[f] : Dn → D pour tout s.f. f de rg n
cas particulier : n = 0 et f est une constante et I[f]∈D
une relation I[p] : Dn → {V, F} pour tout s.r. de rg n
cas particulier : n = 0 ; r est une proposition et I[f]∈{V,F}
On étend I à l’ensemble des termes :
I[x] = a où x ∈ V et a est un élément arbitraire de D
I[f( t1 , … , tn )] = I[f] (I[t1], … , I[tn])
où f est un s.f. de rg n et t1 , … , tn ∈ T
Puis aux formules atomiques :
I[r( t1 , … , tn )] = I[r] ( I[t1], … , I[tn])
où r est un s.f. de rg n et t1 , … , tn ∈ T
Puis aux formules (p et q étant des formules quelconques) :
I[¬p] = V ssi I[p] = F et
I[pq] = V ssi I[q] = V chaque fois que I[p] = V
Et aux formules closes (x étant une variable libre dans p) :
I[∀x p] = V ssi I[p x/a] = V pour tout a ∈ D où px/a consiste à substituer x par a dans p.
Logique et démonstration automatique – H. KANOUI
29
Conséquences
I[p∨q] = V ssi I[p] = V ou I[q] = V
I[p∧q] = V ssi I[p] = I[q] = V
I[∃xp] = V ssi I[p x/a] = V pour au moins un a ∈ D
où x est libre dans p et px/a consiste à substituer x par a dans p.
Exemple : L contient
- la constante 0,
- une fonction unaire s
- une fonction binaire « + » qu’on note en infixé.
Alors s(s(0)+s(x)) et s(x+s(x+s(0))) sont des termes.
Voici plusieurs choix pour I (interprétation) et A (valuation)
D ={0, 1, 2, …} ; 0I = 0 ; sI est la fonction successeur et +I est l’addition. Alors, si A est une
valuation telle que xA = 3 :
- A I [s(s(0)+s(x))] = xA + 3 = 6
- A I [s(x+s(x+s(0)))] = 2xA + 3 = 9
D = {a, b}+ ; 0I = a ; sI est la fonction qui ajoute « a » à la fin d’un mot et +I est la
concaténation. Alors, si A est une valuation telle que xA = aba :
- A I [s(s(0)+s(x))] = aabaaa
- A I [s(x+s(x+s(0)))] = abaabaaaaa
Logique et démonstration automatique – H. KANOUI
30
MODELES
Une interprétation I satisfait la formule Φ si I[Φ] = V. Dans ce cas I est un modèle de Φ.
Exemple
s.f. : {f} pas de constantes une seule fonction (unaire)
s.r. : {p} une seule relation et elle est binaire
Φ = ∀x(p(x,f(x)) → p(f(x),x)) ett l’interprétation I définie par
D = {e1,e2,e3}
I[f] (e1) = e2 ; I[f] (e2) = e3 ; I[f] (e3) = e1
I[p] (e1,e2) = V ; I[p] (e2,e1) = V ; I[p] (ei,ej) = F ailleurs
Alors
I[Φ] = I[∀x(p(x,f(x)) → p(f(x),x))] = V ssi :
- I[(p(x,f(x)) → p(f(x),x))]x/e1 = V
- I[(p(x,f(x)) → p(f(x),x))]x/e2 = V
- I[(p(x,f(x)) → p(f(x),x))]x/e3 =V
pour x=e1 : I[p] (e1, I[f] (e1)) = I[p] (e1, e2)=V
pour x=e2 : I[p] (e2, I[f] (e2)) = I[p] (e2, e3) = F
pour x=e3 : I[p] (e3, I[f] (e3)) = I[p] (e3, e1) = F
et I[p] (I[f] (e1),e1) = I[p] (e2,e1) = V
et I[p] (I[f] (e2),e2) = I[p] (e3,e2) = F
et I[p] (I[f] (e3),e3) = I[p] (e1,e3) = F
Donc I est un modèle de la formule Φ
Logique et démonstration automatique – H. KANOUI
31
Définitions
Une formule Φ est une tautologie si elle est satisfaite par toute interprétation. C’est à dire que
pour toute interprétation I, on a I(Φ) = V. On écrit |= Φ
D’après la définition, la formule Φ contenant les variables libres x1, … , xn est une
tautologie ssi la formule fermée ∀ x1 … ∀xnΦ est une tautologie
Exemples
|= (p(x) ∨¬p(x))
|=∀x(p(x) ∧ q(x)) ↔ (∀yp(y) ∧∀zq(z))
Contrairement au cas propositionnel le nombre d’interprétations différentes pour une formule
donnée n’est pas fini : on ne peut pas énumérer toutes les interprétations. Il faut raisonner.
Une formule Φ est une conséquence de Φ1 ,…, Φn si tout modèle de { Φ1 ,…, Φn } est un
modèle de Φ.
On écrit : Φ1 ,…, Φn |= Φ.
Exemple
∀x∀y(q(x,y)→p(x,y)) ; ∀z q(z,z) |= ∀x p(x,x)
Logique et démonstration automatique – H. KANOUI
32
Définitions (suite)
Une formule Φ est satisfiable ou consistante si elle possède un modèle. Dans le cas contraire,
elle est insatisfiable ou inconsistante. Si Φ est close, on montre facilement que Φ est
insatisfiable ssi ¬Φ est satisfiable.
Un ensemble de formules est satisfiable ou consistant si il existe une interprétation qui
satisfait chacune des formules de l’ensemble. Dans le cas contraire il est insatisfiable ou
inconsistant.
Exemples
L’ensemble de formules
{∀x∀y (p(x,x)→(p(y,y)→p(x,y))) ; ∀z p(z,z)}
est satisfiable.
L’ensemble de formules
{∃a p(a) ;∀x(p(x)→¬r(x)) ;∀y(¬r(y)→q(y));∀z (q(z)→¬p(z))}
est insatisfiable alors que tout sous ensemble de 3 de ces formules est satisfiable.
Logique et démonstration automatique – H. KANOUI
33
THEOREMES FONDAMENTAUX
Proposition 4
Soit Γ un ensemble de formules closes et B une formule close. Alors Γ |=B ssi Γ ∪{¬B} est
insatisfiable.
Proposition 5 (correction)
Soit A une formule. Si |-A alors |=A
Autrement dit, les formules qui sont des théorèmes (c’est à dire sont « démontrables » : validité
syntaxique) sont des tautologies (elles sont « vraies » : validité sémantique)
Proposition 6 (complétude)
Si |= A alors |- A
Autrement dit, les formules qui sont des tautologies (elles sont « vraies » : validité sémantique)
sont des théorèmes (c’est à dire sont « démontrables » : validité syntaxique)
Proposition 7 (méthode de réfutation)
f1 ,…, fn |= g ssi |= [f1 ∧…∧ fn → g] ssi { f1 ,…, fn , ¬g } est insatisfiable
Proposition 8
Le CP1 est indécidable. Autrement dit il n’existe pas d’algorithme qui pour toute formule f
indique en un temps fini si on a |- f ou NON
Logique et démonstration automatique – H. KANOUI
34
PREPARATION DES FORMULES
FORME PRENEXE
Définition
On dit qu’une formule A du CP1 est sous forme prénexe si elle s’écrit : A = Q1x1 Q2x2 … Qnxn
B où chaque Qi est ∀ ou ∃ et B une formule ne contenant aucun quantificateur.
La partie Q1x1 Q2x2 … Qnxn est appelée préfixe de A. La partie B est appelée matrice de A.
SKOLEMISATION
Définition
Soit A = Q1x1 Q2x2 … Qnxn B une formule sous forme prénexe. On appelle forme de Skolem
de A et on note AS la formule obtenue comme suit :
le préfixe de AS est celui de A auquel on a retiré toutes les quantifications ∃xi
le corps de AS est obtenu à partir de B en remplaçant chaque xi quantifiées par ∃ par fi (xi1
xi2 … xik ) où fi est un nouveau symbole fonctionnel et xi1 xi2 … xik sont les variables
quantifiées par ∀ et placées devant le ∃xi dans le préfixe de A. Dans le cas où il n’y a aucun
quantificateur ∀ devant ∃xi le symbole qui remplace xi est une nouvelle constante.
Logique et démonstration automatique – H. KANOUI
35
Exemple
A = ∃x p(x,f(x)) ;
AS = p(a,f(a)) où a est une nouvelle constante
A = ∃x ∀y ∃z ∀t ∃u p(x,y,z,t,u) ;
AS = ∀y∀t p(a,y,f1(y),u, f2(y,u))
Proposition 1 (théorème de Skolem)
Soit { A1 A2 … An } un ensemble fini de formules du 1er ordre et { A1S A2S … AnS } leurs
formes de Skolem. Alors :
{ A1 A2 … An } admet un modèle de base E ssi
{ A1S A2S … AnS } admet un modèle de base E
FORME CLAUSALE
Proposition 2
Tout ensemble fini de formules Φ peut être transformé en un ensemble fini de clauses C
équivalent, c’est à dire que Φ est inconsistant ssi C est inconsistant. On rappelle qu’une clause
est une disjonction de littéraux (comme pour le CP0).
Logique et démonstration automatique – H. KANOUI
36
∃ x (∀y (∃z p(x,y,z)→ q(x))) → ∀x q(x)
Algorithme de transformation sur
Eliminer les implications ↔ et →
en remplaçant :A→B par¬A∨B et A↔B par ¬((A→B)→ ¬(B→A))
¬(∃ x (∀y (¬(∃z p(x,y,z))∨ q(x)))) ∨ ∀x q(x)
2. Réduire la portée des négations : remplacer
¬(A ∧ B) par ¬A ∨ ¬B
¬(A ∨ B) par ¬A ∧ ¬B
(∀ x (∃y (¬ (¬(∃z p(x,y,z))∨ q(x)))) ∨ ∀x q(x)
¬¬ A par A
(∀ x (∃y (¬ (∀z ¬p(x,y,z))∧ ¬ q(x))) ∨ ∀x q(x)
¬∃xA par ∀x ¬A
¬∀x A par ∃x¬A
(∀ x (∃y (∃z p(x,y,z)∧ ¬ q(x))) ∨ ∀x q(x)
1.
(∀ x (∃y (∃z p(x,y,z)∧ ¬ q(x))) ∨ ∀ u q(u)
3. Renommer les variables
4. Eliminer les existentiels (skolémisation)
5. Mettre la formule sous forme prénexe
6. Distribuer les « ∨ » sur les « ∧ »
et les « ∧ » sur les « ∨ »
7. Passer à la forme clausale:
Logique et démonstration automatique – H. KANOUI
∀ x (p(x, f(x),g(x))∧ ¬ q(x)) ∨ ∀ u q(u)
∀ x ∀ u (p(x, f(x),g(x))∧ ¬ q(x)) ∨ q(u))
∀ x ∀ u [(p(x, f(x),g(x)) ∨ q(u)) ∧ (¬ q(x) ∨ q(u))]
{ p(x, f(x),g(x)) ∨ q(u)) ; ¬ q(x) ∨ q(u) }
37
INTERPRETATION & THEOREME DE HERBRAND
Soit Φ=∀x1…∀xn ϕ une formule sous forme de skolem dont on souhaite étudier la satisfiabilité :
Une interprétation de Herbrand est une interprétation dans un domaine particulier UΦ appelé
Univers de Herbrand, défini de manière à restreindre au maximum le domaine d’interprétation
permettant de décider que la formule Φ=∀x1…∀xn ϕ est satisfiable ou pas.
Univers de Herbrand
UΦ est l’ensemble minimal construit ainsi :
- on part de UΦ = ∅
- pour chaque constante a apparaissant dans Φ on ajoute le symbole de constante a dans UΦ.
- si UΦ ne contient pas de constante, on choisit une constante arbitraire, c, qu’on ajoute dans UΦ.
- pour chaque fonction f de rang n apparaissant dans Φ, et pour chaque n-uplet d’éléments
(t1,…,tn) déjà présents dans UΦ, on ajoute à UΦ le nouveau terme f(t1,…,tn).
UΦ est l’ensemble de tous les termes sans variables construits à partir des constantes et des
fonctions apparaissant dans Φ.
Logique et démonstration automatique – H. KANOUI
38
Remarques :
- UΦ n’est pas vide, il contient au moins une constante
- dès que Φ contient une fonction, UΦ est infini.
- UΦ est au moins dénombrable : on peut le construire par ordre d’éléments (termes) de longueur
croissante.
- les éléments de UΦ sont des symboles à usage purement syntaxique, sans signification concrète,
puisqu’on garde les symboles de fonctions de Φ sans les interpréter.
Logique et démonstration automatique – H. KANOUI
39
Atomes de Herbrand
Ensemble KΦ de toutes les formes prédicatives du type p(t1,…,tn) ou p est un symbole relationnel
de rang n de Φ et (t1,…,tn ) un n-uplet de termes pris dans UΦ.
Les atomes de Herbrand ne contiennent plus de variables : ils sont assimilés à des propositions du
CP0
A chacun de ces atomes de Herbrand sans variable on peut donc attribuer une valeur de vérité
{V,F} exactement comme on le fait en calcul propositionnel.
Interprétations de Herbrand
Les interprétations de Herbrand de Φ sont alors exactement déterminées par ces valeurs de vérité:
ϕ x1/t1,…, xn/tn ne contient plus de variable et est donc assimilée à une formule du CP0 construite
avec les atomes de Herbrand ci-dessus, pour laquelle on sait calculer la valeur de vérité
Logique et démonstration automatique – H. KANOUI
40
Exemple : Φ=∀x∀y p(x,a) ∨ q(x,f(y))
UΦ = {a, f(a), f(f(a)), ….f(f(…f(a)…)), …}
PΦ={p(a,a),p(f(a),a),p(f(f(a)),a),…,q(a,f(a)),q(f(a),f(a)),
q(f(a),f(f(a))), …, q(f(f(a)),f(a)),…}
Une 1ère interprétation des atomes de Herbrand :
- I[p(fk(a),a)] = V si k est impair, F sinon
- I[q(fk(a),fm(a))] = V si k = m et F sinon
ne satisfait pas Φ car I[p(f(f(a)),a) ∨ q(f(f(a)),f(a)) ] = F
Une 2ème interprétation des atomes de Herbrand :
- J[p(fk(a),a)] = V si k >0, et J[p(a,a) = F
- J[q(fk(a),fm(a))] = V si k < m et F sinon
satisfait Φ. En effet :
- si on substitue x par fk(a) avec k ≠ 0, le premier prédicat est satisfait : J[p(fk(a),a)] = V
- si on substitue x par a (i.e. fk(a) avec k = 0) le premier prédicat n’est pas satisfait : J[p(a,a)] = F
mais le 2ème l’est : J[q(a,fm(a))] = V car m>0.
Logique et démonstration automatique – H. KANOUI
41
Théorème de Herbrand
Soit Φ=∀x1…∀xn ϕ une formule sous forme de skolem. Ces 2 propositions sont équivalentes :
(1) Φ possède un modèle
(2) Φ possède un modèle de Herbrand de base UΦ
Preuve (1) ⇒ (2) est trivial
(2) ⇒ (1)
Soit I un modèle de Φ et D son domaine. Comme Φ est de skolem, de matrice ϕ, I est un modèle
de Φ signifie que I[ϕ] = V pour toute instance sans variable ϕ de ϕ.
A partir de I on va construire une interprétation de Herbrand J qui est un modèle de Φ :
- On commence par construire UΦ et KΦ
- On définit ensuite la valeur de vérité attribuée par J aux atomes de Herbrand par :
J[p(t1,…,tn)] = V ssi I[p](I[t1],…,I[tn]) = V
∈ KΦ
Il s’ensuit que I et J donnent les mêmes valeurs de vérité aux instances sans variables des
formules atomiques de ϕ, et donc qu’ils donnent les mêmes valeurs de vérité aux instances sans
variables de ϕ toute entière. Donc si I est un modèle de Φ, J l’est aussi. CQFD.
Logique et démonstration automatique – H. KANOUI
42
Généralisation
1) Φ n’est plus une formule mais un ensemble fini de formules. Le théorème ci-dessus reste valide
2) Φ est un ensemble fini de clauses. Le théorème ci-dessus reste valide
En pratique
Lorsque Φ = { A1,…,An } est un ensemble fini de clauses :
- Φ est inconsistant ssi Φ n’a pas de modèle de Herbrand (théorème de Herbrand)
- Φ n’a pas de modèle de Herbrand ssi SΦ est inconsistant
- SΦ est inconsistant ssi une des formules F0∧F1 ∧…∧Fk est inconsistante pour un certain k
(théorème de compacité pour le CP0).
La « mécanisation » consiste alors à engendrer dans un ordre convenable les sous ensembles
{F0}, puis {F0, F1}, puis {F0, F1,F2}, etc. et tester à chaque fois l’inconsistance jusqu’à y arriver.
Logique et démonstration automatique – H. KANOUI
43
Exemple : Φ = {A1, A2, A3, A4} avec :
A1 = ¬ p(x) ∨ q(x, f(x))
A2 = ¬ p(x) ∨ r(f(x))
A3 = p(a)
A4 = ¬ q(x ,y)
On calcule :
KΦ = {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))), …}
Et: F0 = ¬ p(a) ∨ q(a, f(a))
F2 = p(a)
F4 = ¬ p(f(a)) ∨ q(f(a), f(f(a)))
F6 = ¬ q(a ,f(a))
etc.
F1 = ¬ p(a) ∨ r(f(a))
F3 = ¬ q(a ,a)
F5 = ¬ p(f(a)) ∨ r(f(f(a)))
F7 = ¬ q(f(a), a)
Alors :
F0 ∧ F1 …∧ F5 est satisfiable avec: I[p(a)] = I[q(a,f(a))] = I[r(f(a))] = V et I[q(a,a)] =
I[p(f(a))] = F.
Il n’en est plus de même pour F0 ∧ F1 …∧ F5 ∧ F6.
Logique et démonstration automatique – H. KANOUI
44
Remarque
On peut reformuler ces notions comme suit :
Soit L un langage contenant au moins une constante
Une interprétation de Herbrand I de L est telle que :
le domaine de I est l’ensemble des termes terminaux de L
tout terme terminal de L est interprété par lui-même : I[t] = t
L’interprétation par I de toute formule fermée est déterminée par les valeurs données par I aux
littéraux positifs de L
On en déduit (reformulation de la proposition 3):
une interprétation de Herbrand I satisfait une clause C ssi elle satisfait toute instance
terminale de C
un ensemble de clauses est consistant ssi il existe une interprétation de Herbrand qui le
satisfait
un ensemble de clauses est consistant ssi l’ensemble des instances terminales de ses clauses
l’est
un ensemble de clauses est inconsistant ssi il existe un ensemble fini d’instances terminales
de ses clauses inconsistant
Logique et démonstration automatique – H. KANOUI
45
DEMONSTRATION AUTOMATIQUE
L’objet fondamental de la démonstration automatique est de trouver un algorithme général qui,
étant donnés
Φ = { Ai } et B répond à la question :
Est-il vrai que : {A1A2…An}|- B ?
Ce qui est équivalent à : est-il vrai que : {A1A2…An}|= B ?
Ou: est-il vrai que : {A1A2…An , ¬ B} n’a pas de modèle ?
Cet algorithme général n’existe pas.
Mais il existe des algorithmes semi-décidables ou complets qui résolvent le problème suivant :
Si Φ |- B alors l’algorithme s’arrête au bout d’un temps fini et donne comme résultat une
démonstration de B à partir de Φ.
Dans le cas contraire, l’algorithme peut ne pas s’arrêter.
Logique et démonstration automatique – H. KANOUI
46
Voici un tel algorithme :
début
Transformer {A1,A2…,An,¬B} en clauses Φ
Calculer le système de Herbrand associé SΦ
Si SΦ est fini alors
Si SΦ est satisfiable alors
résultat : « B n’est pas conséquence de {A1…An} »
Sinon résultat : « B est conséquence de {A1…An} »
finsi
Sinon
F :=∅
Répéter
Soit F0 la 1ère formule de SΦ
F := F∪{ F0}
SΦ := SΦ −{ F0}
jusqu’à « F insatisfiable »
résultat := « B est conséquence de {A1…An} »
finsi
fin
Logique et démonstration automatique – H. KANOUI
47
Sauf dans le cas où SΦ est
fini, cet algorithme s’arrête
si B est une conséquence de
{A1A2…An} et
tournera
sans fin sinon
METHODE DE RESOLUTION
Le problème: {A1A2…An}|- B ? se ramène à l’étude de la
consistance d’un ensemble de clauses {C1C2…Cm}
La méthode de résolution est un moyen aussi efficace que possible de résoudre ce problème.
RESOLUTION SANS VARIABLES
Définition
La résolution sans variable est un système formel défini par :
Σ = { variables propositionnelles } ∪ { ¬ , ∨}
F = ensemble de toutes les clauses sans répétition :
p1∨ p2∨... pk∨ ¬q1∨ ¬q2∨... ¬qm avec k, m ≥0
pour k=m=0, on obtient la clause vide notée 
A = ∅ : pas d’axiome
R = {f∨p ; g∨¬p |- f∨g} : cut : f∨g est la résolvante des clauses f∨p et g∨¬p
Logique et démonstration automatique – H. KANOUI
48
Remarque
Sur les clauses, la résolution généralise modus ponens:
¬A ∨ B ; A |- B
et modus tollens : ¬A ∨ B ; ¬B |- ¬A
Et exprime la transitivité de l’implication :
A → B ; B → C |- A → C
car : ¬A ∨ B ; ¬B ∨ C |- ¬A ∨ C
Exemple 1
A ∨ B ∨ C ; ¬A∨ B ∨ C ; ¬B ∨ C |- C
A∨B∨C
hyp
¬A∨ B ∨ C
B∨C
¬B∨ C
C
hyp
cut
hyp
cut
Logique et démonstration automatique – H. KANOUI
49
Exemple 2
A ∨ B ; A∨ ¬B ; ¬A ∨ B ; ¬A ∨ ¬B |- 
A∨B
A∨ ¬B
A
¬A ∨ B
¬A ∨ ¬B
¬A

hyp
hyp
cut
hyp
hyp
cut
cut
Logique et démonstration automatique – H. KANOUI
50
Proposition 1
Si F est un ensemble de clauses et C une clause, et si F |- C alors F |= C.
Démonstration
En effet, F contient nécessairement les 2 clauses p ∨ f ; ¬p ∨ g et C = f ∨ g
Soit I une interprétation qui satisfait F.
Si I[p]=V alors I[g]=V sinon I[f]=V
Donc I[f ∨ g] = V et I satisfait C
Proposition 2
Un ensemble F de clauses est insatisfiable ssi F |- 
Démonstration
Si F |-  alors F |=  (prop. 1). Si F possède un modèle I, I est aussi modèle de la clause vide,
ce qui est impossible. En conséquence, F n’a pas de modèle et donc F est insatisfiable.
c’est que F contient un littéral A et sa négation ¬A. Donc F est insatisfiable.
On ne démontrera pas la réciproque
Logique et démonstration automatique – H. KANOUI
51
Remarque
La méthode de résolution sans variable est correcte et complète. Elle permet de savoir si un
ensemble de clauses est satisfiable ou pas. Le système formel associé est malgré tout moins
puissant que le CP0 :
- d’une part il n’accepte que des clauses
- d’autre part alors que dans le CP0 on a : H1 ; H2 ;... Hn |- T ssi H1 ∧ H2 ∧... Hn |= T ceci n’est
plus vrai pour la RSV. Par exemple on a : A |= A ∨ B mais non : A |- A ∨ B
Logique et démonstration automatique – H. KANOUI
52
SUBSTITUTION - UNIFICATION
Substitution :
σ : V T identique presque partout
On note σ = { x1= v1 ; x2= v2 ; … ; xn= vn }
On étend ensuite σ à T par :
vi si t est xi
σ.t = σ (t) =
t si t est une const ou une var ≠ des xi
f (σ(t1), σ(t2), …,σ(tn)) si t est f (t1,t2,…,tn)
Composition de substitutions : σ.θ (t) = θ (σ (t))
Ex :
σ = {x=a ; y=f(z) ; z=x }
θ = { x=b ; z=c ; u=d}
σ.θ = {x=a ;y=f (c) ; u=d}
Logique et démonstration automatique – H. KANOUI
53
Renommage et substitution : A est une formule et x est libre dans A, t est un terme.
A[x→t] est obtenue à partir de A en remplaçant chaque occurrence de x par t dans A,
Unification
trouver si elle existe une substitution qui rend plusieurs termes égaux.
un unifieur de l’ensemble des termes S = {t1, t2, …,tn} est la substitution σ telle que σ.t1 =
σ.t2 = …= σ.tn
restriction : si x est une variable et t un terme, on ne peut les unifier que si x n’a pas
d’occurrence dans t (occur-check).
Plus grand unifieur
σ est le pgu de deux termes s et t si, pour tout unifieur θ de s et t, il existe λ telle que θ = λ . σ
Exemple
t = f(x,a) et s= f(g(u),w).
θ = { u= 12 ; x = g(u) ; w = a } est un unifieur de s et t.
σ = { x = g(u) ; w = a } en est un autre, plus général
que θ puisque : θ = λ . σ avec λ = { u = 12}
Logique et démonstration automatique – H. KANOUI
54
Algorithme d’unification de 2 termes f et g
0. θ = ε (substitution vide)
1. Si θ(f) ≠ θ(g) faire
- parcourir en parallèle θ(f) et θ(g) de gauche à droite et s’arrêter sur les 1ers symboles
différents. Soient t1 et t2 les sous termes respectifs de θ(f) et θ(g) commençant à ce
symbole
- si ni t1 ni t2 ne sont des variables alors ECHEC
- si t1 est une variable avec occurrence dans t2 alors ECHEC
- si t2 est une variable avec occurrence dans t1 alors ECHEC
- sinon t1 (resp. t2) est une variable, mais pas t2 (resp. t1) Poser θ={t1=t2}.θ (resp.
θ={t2=t1}.θ) et aller en 1.
2. θ est le pgu de f et g. FIN
Logique et démonstration automatique – H. KANOUI
55
Exemple
g(x,f(x),c) g(u,w,w)
g(u,f(u)) g(w,w)
g(x,f(x),c) g(u,w,w)
{x = u}
g(u,f(u)) g(w,w)
{u=w}
g(u,f(u),c) g(u,w,w)
{x=u ; w = f(u)}
g(w,f(w)) g(w,w)
{u=w w=f(w)}
g(u,f(u),c) g(u,f(u),f(u))
{x=u;w=f(u);w=c}
échec (occur check)
échec (conflit)
Logique et démonstration automatique – H. KANOUI
56
RESOLUTION AVEC VARIABLES
Idée générale
On part de formules sous forme clausale dans lesquelles les variables libres sont implicitement
universellement quantifiées
P(x , b) ∨ ¬Q(x , y)
¬P(a , z) ∨ R(z)
On peut trouver une substitution qui rend les 2 littéraux de tête complémentaires.
Avec {x = a ; z = b} on obtient :
P(a , b) ∨ ¬Q(a , y)
¬P(a , b) ∨ R(b)
et on peut procéder comme dans le cas propositionnel pour obtenir la résolvante :
¬Q(a , y) ∨ R(b)
La règle de résolution systématise cette démarche en trouvant la substitution que rend les
littéraux complémentaires.
Logique et démonstration automatique – H. KANOUI
57
La résolution avec variables est un système formel défini par :
Σ = le même que pour le CP1
F = ensemble de toutes les clauses du CP1 sans répétition:
p1∨ p2∨... pk∨ ¬q1∨ ¬q2∨... ¬qm avec k, m ≥0
pour k=m=0, on obtient la clause vide notée 
A = ∅ : pas d’axiome
R = {résolution ; factorisation}
Résolution
L1∨L2∨…Ln ; ¬K1∨K2∨…Km |- σ[ΘL2∨…ΘLn∨K2∨…Km ]
- Θ est une substitution de renommage :
Θ[L1 ∨ L2 ∨… Ln ] et K1 ∨ K2 ∨… Km n’ont pas de variable libre commune
- σ est le plus grand unifieur de ΘL1 et K1 :
σ (ΘL1) = σK1
Factorisation
L1 ∨ L2 ∨… Ln |- σL2 ∨… σLn
- est le plus grand unifieur de L1 et L2: σL1 = σL2
Logique et démonstration automatique – H. KANOUI
58
Proposition 2bis
Un ensemble F de clauses (du CP1) est insatisfiable ssi F |- 
Exemple 1
Exemple 2
S={ P(x) ∨ P(y) ; ¬P(u) ∨ ¬P(v) }
T={¬P(x)∨P(f(x)) ;P(a) ; ¬P(f(z))}
1. P(x) ∨ P(y)
2. P(x)
3. ¬P(u) ∨ ¬P(v)
4. ¬P(v)
5. 
1.
¬P(x) ∨ P(f(x))
2.
P(a)
3.
P(f(a))
4. ¬P(f(z))
5.

hypothèse
factorisation de 1.
hypothèse
résolution 2. et 3.
résolution 2. et 4.
hypothèse
hypothèse
résolution 1. et 2.
hypothèse
résolution 3. et 4.
Remarque
Le CP1 sous forme clausale, sans axiome et muni de la règle de résolution et de la règle de
factorisation (ou diminution) est correct et complet :
Sans la factorisation on ne produit pas la clause vide. En effet la résolution appliquée à 2
clauses binaires produit une clause binaire.
Logique et démonstration automatique – H. KANOUI
59
Exemple 3
Tout crime a un auteur
Seuls les gens malhonnêtes commettent des crimes
On n’arrête que les gens malhonnêtes
Les gens malhonnêtes arrêtés ne commettent pas de crime
Il y a des crimes
En déduire qu’il y a des gens malhonnêtes non arrêtés
Traduction des énoncés
1.
2.
3.
4.
5.
6.
∀x ( crime (x) → ∃y commet(y,x) )
∀x ∀y (( crime(x) ∧ commet(y,x)) → malhonnete(y) )
∀x ( arrete(x) → malhonnete(x) )
∀y ((malhonnete(y) ∧ arrete(y)) →
¬∃x(crime(x) ∧ commet(y,x))
∃x crime(x)
¬ ∃y (malhonnete(y) ∧ ¬ arrete(y))
Logique et démonstration automatique – H. KANOUI
60
Passage à la forme clausale
1.
2.
3.
4.
5.
6.
¬ crime (x) ∨ commet(f(x),x)
¬ crime(x) ∨ ¬ commet(y,x)) ∨ malhonnete(y)
¬ arrete(x) ∨ malhonnete(x)
¬malhonnete(y)∨¬arrete(y)∨¬crime(x) ∨¬commet(y,x)
crime(a)
¬ malhonnete(y) ∨ arrete(y)
Logique et démonstration automatique – H. KANOUI
61
1. ¬ crime (x) ∨ commet(f(x),x)
2. ¬ crime(x) ∨ ¬ commet(y,x)) ∨
malhonnete(y)
3. ¬ arrete(x) ∨ malhonnete(x)
4. ¬malhonnete(y)∨¬arrete(y)∨
¬crime(x) ∨¬commet(y,x)
5. crime(a)
6. ¬ malhonnete(y) ∨ arrete(y)
Démonstration
1. ¬ crime (x) ∨ commet(f(x),x)
2. ¬ crime(x) ∨ ¬ commet(y,x)) ∨ malhonnete(y)
3. ¬ arrete(x) ∨ malhonnete(x)
4. ¬malhonnete(y)∨¬arrete(y)∨¬crime(x)
∨¬commet(y,x)
5. crime(a)
6. ¬ malhonnete(y) ∨ arrete(y)
7. commet(f(a),a)
rés. 5. & 1.
8. ¬ crime(a) ∨ malhonnete(f(a))
9. malhonnete(f(a))
rés. 7. & 2.
rés. 8 & 5. Ce qqu’un est malhonnête
Qqu’un a commis le crime
10.
¬ malhonnete(f(a)) ∨ ¬ arrete(f(a)) ∨ ¬ crime(a)
11.
¬ malhonnete(f(a)) ∨ ¬ arrete(f(a))
rés. 10. & 5.
12.
¬ arrete(f(a))
rés. 11. & 9.
13.
¬ malhonnete(f(a))
rés. 12. & 6.
14.

rés. 13. & 9. Contredit 6.
Logique et démonstration automatique – H. KANOUI
62
rés. 7. & 4.
STRATEGIES D’UTILISATION DE LA RESOLUTION
Deux approches pour montrer qu’un ensemble S est insatisfaisable avec les règles de
résolution et de factorisation.
Techniques de gestion des ensembles de clauses manipulées
Techniques d’exploration de l’arbre de déduction
Logique et démonstration automatique – H. KANOUI
63
STRATEGIES D’UTILISATION DE LA RESOLUTION
1. Techniques de gestion des ensembles de clauses
SATURATION
On part d’un ensemble de clauses S0 dont on cherche à savoir s’il est satisfiable ou non
On effectue toutes les résolutions et les factorisations sur S0. On ajoute les clauses produites
pour obtenir S1.
On recommence sur S1 et on obtient S2 puis S3 etc.
On s’arrête dès qu’on produit  dans Si ou que Si+1 = Si .
La méthode est :
Correcte : on n’obtient  que si S0 est insatisfiable
Complète : si S0 est insatisfiable on le montre en temps fini
Mais : si S0 est satisfiable il se peut que Si+1 ≠ Si pour tout i.
exemple : {p(a) ; ¬p(x) ∨ p(f(x))}
En tout cas très inefficace car la taille de Si augmente exponentiellement
Logique et démonstration automatique – H. KANOUI
64
STRATEGIES D’UTILISATION DE LA RESOLUTION
SATURATION AVEC SIMPLIFICATION
Comme ci-dessus en supprimant les tautologies et les clauses subsumées :
Tautologies : vraies dans toute interprétation.
exemple : p(f(x)) ∨ q(x) ∨ ¬r(x) ∨ ¬p(f(x))
C1 subsume C2 si il ex. σ et C3 tq. C2 = σC1∨C3 .
exemple : p(x)∨q(a) subsume p(a)∨q(a)∨r(f(x))∨r(b)
la méthode est :
Correcte : on n’obtient  que si S0 est insatisfiable
Complète : si S0 est insatisfiable on le montre en temps fini
exemple :
S={r(a) ∨ p(a) ; p(x) ∨ ¬r(b) ; r(b) ; ¬p(b) ; r(a) ∨ r(c) ∨ ¬r(a)}
Logique et démonstration automatique – H. KANOUI
65
STRATEGIES D’UTILISATION DE LA RESOLUTION
PREFERENCE DES CLAUSES SIMPLES (VARIANTE : PREFERENCE DES CLAUSES UNITAIRES)
Au lieu d’ajouter d’un seul coup toutes les clauses on n’en construit qu’une seule « bien
choisie », la plus courte.
exemple
S0 = {r(x) ∨ ¬p(x) ; ¬r(b) ; ¬r(c) ∨ q(x) ∨ r(f(a)) ; p(b) }
S1 = S0 ∪{¬p(b)}
S2 = S1 ∪{}
Mais la méthode est incomplète.
exemple :
S0 ={¬p(x) ∨ p(f(x)) ; p(a) ; ¬p(a) ∨ ¬p(b) ∨ ¬p(c) ; p(b) ; p(c)}
S1 = S0 ∪{¬p(f(a))}
S2 = S1 ∪{¬p(f(f(a)))}
…..
alors qu’on peut obtenir  en 3 étapes à partir des 4 dernières clauses à condition de passer par
une clause à 2 littéraux.
Pour la rendre complète ajouter une étape de saturation de temps en temps
Logique et démonstration automatique – H. KANOUI
66
STRATEGIES D’UTILISATION DE LA RESOLUTION
2. Techniques d’exploration de l’arbre de déduction
ARBRE DE DEDUCTION D’UN ENSEMBLE DE CLAUSES S
C’est l’arbre (infini) dont toute branche issue de la racine passe par des nœuds f1, …, fn
constituant une déduction au sens du système formel CP0 ou CP1.
exemple : S = {A, ¬A∨ B, ¬B }
Logique et démonstration automatique – H. KANOUI
67
A
Branche la plus
gauche
f1 : A
(hyp)
f2 :¬A∨B
(hyp)
f3 : ¬B
(hyp) f
B (rés. f1 & f2)
f5 :  (rés. f3 & f4)
¬A∨ B
¬B

B
¬A
¬A


Logique et démonstration automatique – H. KANOUI
Branche la plus à droi
f1 : A
(hyp)
f2 :¬A∨B
(hyp)
f3 :¬B
(hyp)
f4 : ¬A (rés 2 & f3)
f5 : B (rés f1 & f2)
f6 :  (rés. f3 & f5)
B

68
STRATEGIES D’UTILISATION DE LA RESOLUTION
Les implémentations de la résolution reviennent à construire au moins implicitement et à
explorer cet arbre en recherchant les branches qui conduisent à la clause vide.
La stratégie de construction/d’exploration de cet arbre influe sur le résultat (et le
comportement) en se fondant sur 2 choix :
1. choix d’un sous-arbre de l’arbre des déductions défini par une limitation sur les déductions
prises en compte
2. choix d’un procédé d’exploration de ce sous-arbre
en profondeur d’abord
en largeur d’abord
Logique et démonstration automatique – H. KANOUI
69
PROFONDEUR D’ABORD AVEC RETOUR ARRIERE (« BACKTRACKING »)
23
1
11
2
10
12
4
22
14 20
5
3
9
15
7
6
13
8
19
17
16
21
18
On construit l’arbre par branches successives, de gauche à droite. A tout instant on a en
mémoire les nœuds d’une branche de l’arbre.
Logique et démonstration automatique – H. KANOUI
70
La méthode est
Correcte
Non complète
AVANTAGES
On retrouve facilement un objet présent
Se programme facilement
Optimise l’espace mémoire
INCONVENIENT
Se perd dans la 1ère branche infinie rencontrée
Logique et démonstration automatique – H. KANOUI
71
LARGEUR D’ABORD
1
2
4
3
5
9
6
10
7
11
8
12
On construit l’arbre par niveaux successifs. Au niveau n on a en mémoire 2n nœuds.
Logique et démonstration automatique – H. KANOUI
72
La méthode est
Correcte
Complète
AVANTAGES
Parcourt l’arbre en entier même s’il est infini
INCONVENIENT
Très coûteux de descendre profondément dans l’arbre dès que le nombre de branches devient
important
Logique et démonstration automatique – H. KANOUI
73
STRATEGIES D’UTILISATION DE LA RESOLUTION
(choix du sous-arbre à explorer)
STRATEGIE LINEAIRE
On choisit une clause C0 de S
On obtient Ci+1 par résolution ou diminution de Ci et d’une autre clause.
exemple
S={¬A∨ ¬B ; A∨ ¬C ; C ; B ∨ ¬D ; D ∨ B } et
C0 = ¬A∨ ¬B
Correcte
Complète « en largeur d’abord »
incomplète sinon. ex : S = {¬p(x)∨ p(f(x)), ¬p(a), p(x)}
Logique et démonstration automatique – H. KANOUI
74
STRATEGIE INPUT
On choisit une clause C0 de S
On obtient Ci+1 par résolution ou diminution d’une clause de S et d’une parmi {C1 ,…, Ci }
exemple : S = {¬A ; A∨ ¬B ; A∨ ¬C ∨ ¬D ; C ; D ∨ ¬C } et C0 = ¬A
Correcte
Non complète même « en largeur d’abord ». cf : S = {A∨ B ; A∨ ¬B ; ¬A ∨ B ; ¬A ∨ ¬B}
MAIS ON A LE RESULTAT SUIVANT :
Si S est insatisfiable, si C0 ne comporte que des littéraux négatifs et si toutes les autres clause
de S ont exactement un littéral positif (clauses de Horn) alors :
Il existe une déduction input de racine C0 conduisant à la clause vide
Cette déduction n’utilise jamais la règle de factorisation
En outre :
La stratégie input en largeur d’abord est complète pour les clauses de Horn.
La stratégie input en profondeur d’abord est complète pour les clauses de Horn dans le cas
où l’arbre de déduction est fini. C’est toujours le cas dans CP0, mais pas dans CP1.
Logique et démonstration automatique – H. KANOUI
75
STRATEGIE ORDONNEE
L’ordre des littéraux dans les clauses et les résolvantes est important : les clauses sont des
suites ordonnées de littéraux et non des ensembles de littéraux :
La résolution se fait entre les littéraux de tête de chacune des clauses
On ordonne le résultat : les littéraux de la clause qui contenait le résultat négatif en premier
exemple
C1 = A1 L2 …Ln et C2 = ¬B1 Q2 …Qm
ont pour résolvante la clause ordonnée σ (Q2 …Qm L2 …Ln)
où σ est le pgu de A1 et B1 (s’ils sont unifiables).
Logique et démonstration automatique – H. KANOUI
76
ET ON A LE RESULTAT SUIVANT :
Si S est insatisfiable, si C0 ne comporte que des littéraux négatifs et si toutes les autres clause
de S sont des clauses de Horn ordonnées en plaçant le littéral positif en tête alors :
Il existe une déduction à la fois input et ordonnée de racine C0 conduisant à la clause vide
Etant « input » cette stratégie n’utilise jamais la règle de factorisation, elle est correste et elle
est complète pour les clauses de Horn dans le cas où l’arbre de déduction est fini.
ET CA, C’EST PROLOG.
Logique et démonstration automatique – H. KANOUI
77
CALCUL DES REPONSES
Pour une stratégie input ordonnée :
S = {p(a) ; p(b) ; r(f(x)) ∨ ¬p(x) ; q(y) ∨ ¬r(y) ; q(c)} ensemble de clauses ordonnées
C = ¬q(z) clause négative ordonnée.
3 déductions input ordonnées conduisent à la clause vide :
f0 :¬r(z)
f0 :¬r(z)
{y=z}
{y=z}
f1 :¬p(x)
f1 :¬p(x)
{y=z ;z=f(x)}
{y=z ; z=f(x)}
f2 : 
f2 : 
{y=z ;z=f(x) ;x=a} {y=z ;z=f(x) ; x=a}
Résultat : z = f(a)
S |= q(f(a))
Logique et démonstration automatique – H. KANOUI
Résultat : z = f(b)
S |= q(f(b))
f0 : 
{z=c}
Résultat : z = c
S |= q(c)
78
En général
Si S est un ensemble de clauses de Horn ordonnées (littéral positif en tête)
Si C une clause négative dont les variables libres sont {x1 x2 …xn}
Si S ∪ {C}est insatisfiable
alors
Chaque déduction input ordonnée se terminant par la clause vide au moyen de la
substitution σ= {x1= t1 ;x2 = t2… xn = tn} définit les objets t1 , t2 …, tn de l’univers de
Herbrand tels que S |= σC
En pratique
Pour savoir quels sont les objets t pour lesquels p(t) est une conséquence de S il suffit
d’explorer l’arbre des déductions input ordonnées par une stratégie en largeur d’abord (ou
en profondeur d’abord, mais on n’est pas complet)
de noter à chaque fois que la clause vide est rencontrée l’objet t qui lui est associé.
Prolog ne procède pas autrement pour calculer et afficher la « solution » d’un but.
Logique et démonstration automatique – H. KANOUI
79
ARBRES (TABLEAUX) SEMANTIQUES
Un moyen simple pour déterminer si une formule F est insatisfiable, ou en produire un
modèle.
On construit un arbre renversé dont la racine est F.
Des règles pour compléter cet arbre par de nouvelles formules au dessous de celles qui y
figurent déjà.
Ces règles se référent à la signification des connecteurs et des quantificateurs.
Négation
¬(∀x C)
↓
∃x ¬C
¬¬ C
↓
C
¬ (C ∨ D)
↓
¬C
¬D
¬ (C→D)
↓
C
¬D
¬(∃x C)
↓
∀x ¬C
¬(C ∧ D)
¬(C ↔ D)
Logique et démonstration automatique – H. KANOUI
¬C
¬D
C
¬D
¬C
D
80
Conjonction
Implication
C∧D
↓
C
D
Disjonction
C→D
Equivalence
¬C
C
D
Quantificateur
universel
∀x C(x)
↓
C(a)
Quantificateur
existentiel
∃x C(x)
↓
C(b)
Logique et démonstration automatique – H. KANOUI
C∨D
D
C↔D
C
D
¬C
¬D
Règle U
Ici a est toute
constante déjà
présente
Règle E
Ici b est une nouvelle
constante
81
branche : séquence de formules partant de la racine et développée vers le bas par application
des règles.
branche fermée ⊗ : qui contient une formule et sa négation
Plus aucune règle n’est appliquée à cette branche.
Règle U
chaque fois qu’une nouvelle constante est introduite par la règle E en dessous de F, le règle
U peut être à nouveau appliquée à F avec cette nouvelle constante.
si aucune règle ne s’applique sur une branche et si aucune constante n’apparaît dans cette
branche, alors il faut introduire une nouvelle constante pour une application ultérieurement
possible de la règle U sur cette branche
Principe
Si toutes les branches deviennent fermées, la formule de départ est insatisfiable. Si une branche
reste ouverte, elle peut être utilisée pour construire un modèle de la formule de départ. Le
domaine de ce modèle est l’ensemble des constantes qui apparaissent sur cette branche.
Logique et démonstration automatique – H. KANOUI
82
Proposition 1
Soit K un ensemble de formule fermées clos pour les règles définissant les tableaux
sémantiques :
- si F ∈ K et si F (resp
F)
↓
↓
C
C
B
par une des règles alors C∈ K (resp. C∈ K et B∈ K)
-
si F ∈ K et si F
B
(resp.
F)
C
B
C
G
H
par une des règles alors B ∈ K ou C∈ K
(resp. B et G ∈ K ou C et H ∈ K)
Si K ne contient pas simultanément une formule et sa négation, et si au moins une formule de
K contient une constante, alors K possède un modèle dont le domaine est l’ensemble D de
toutes les constantes apparaissant dans les formules de K.
Logique et démonstration automatique – H. KANOUI
83
Proposition 2
Si toutes les branches d’un arbre sémantique sont fermées, alors la formule F à la racine de
l’arbre est insatisfiable.
Exemple 1 : |= ∀xC(x)→C(b) ?
1.
2.
3.
4.
5.
¬(∀xC(x)→C(b))
↓
∀xC(x)
(1)
¬C(b)
(1)
↓
C(b)
(2)
↓
⊗
Donc ¬(∀xC(x)→C(b)) est insatisfiable et ∀xC(x)→C(b) est logiquement valide
---------------------------------------------------
Logique et démonstration automatique – H. KANOUI
84
Exemple 2 : |= ∀x(C(x)→D(x)) → (∀xC(x)→∀xD(x)) ?
1.
2.
3.
4.
5.
6.
7.
8.
9.
¬[∀x(C(x)→D(x)) → (∀xC(x)→∀xD(x))]
∀x(C(x)→D(x))
(1)
¬(∀xC(x)→∀xD(x))
(1)
∀xC(x)
(3)
¬(∀xD(x))
(3)
∃x¬D(x)
(5)
¬D(b)
(6)
C(b)
(4)
C(b) → D(b)
(2)
10. ¬C(b)
⊗
D(b)
⊗
(9)
Donc ∀x(C(x)→D(x)) → (∀xC(x)→∀xD(x)) est logiquement valide
---------------------------------------------------
Logique et démonstration automatique – H. KANOUI
85
Exemple 3 : |=∃xA(x)→∀xA(x) ?
1.
2.
3.
4.
5.
6.
¬[∃xA(x)→∀xA(x)]
∃xA(x)
¬(∀xA(x))
A(b)
∃x¬A(x)
¬A(c)
(1)
(1)
(2)
(3)
(5)
Plus aucune règle ne s’applique. La branche reste ouverte.
On définit alors l’interprétation I suivante :
- domaine : D={b , c}
- A(b) = Vrai ; A(c) = Faux
I[∃x¬A(x)] = Vrai et I[∀xA(x)] = Faux.
I[∃xA(x)→∀xA(x)] = Faux
et donc ∃xA(x)→∀xA(x) n’est pas logiquement valide
--------------------------------------------------Logique et démonstration automatique – H. KANOUI
86
Exemple 4 : |= ∃y∀xB(x,y) → ∀x∃yB(x,y) ?
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
¬[∃y∀xB(x,y) → ∀x∃yB(x,y)]
∃y∀xB(x,y)
(1)
¬(∀x∃yB(x,y))
(1)
∀xB(x,b)
(2)
∃x¬(∃yB(x,y))
(3)
B(b,b)
(4)
¬(∃yB(c,y))
(5)
B(c,b)
(4)
∀y¬B(c,y)
(7)
¬B(c,b)
(9)
⊗
Donc ∃y∀xB(x,y) → ∀x∃yB(x,y) est une tautologie
Remarque : étape 6 : B(b,b) n’a pas servi.
Cette formule est quand même produite pour être sûr d’être exhaustif : sur une branche donnée,
on applique la règle U dès qu’une nouvelle constante apparaît sur cette branche.
--------------------------------------------------Logique et démonstration automatique – H. KANOUI
87
Exemple 5 : |= ∀xB(x)→∃xB(x) ?
¬[∀xB(x)→∃xB(x)]
∀xB(x)
(1)
¬(∃xB(x))
(1)
∀x¬B(x)
(3)
B(b)
(2)
¬B(b)
(4)
⊗
Donc ∀xB(x)→∃xB(x) est une tautologie.
1.
2.
3.
4.
5.
6.
Remarque : l’étape 6 introduit une nouvelle constante pour la règle U car sinon la branche se
terminerait sans contenir aucune constante.
---------------------------------------------------
Logique et démonstration automatique – H. KANOUI
88
Exemple 6 : |= ∀x¬A(x,x) → ∃x∀y¬A(x,y) ?
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
¬[∀x¬A(x,x) → ∃x∀y¬A(x,y)]
∀x¬A(x,x)
¬(∃x∀y¬A(x,y))
∀x¬(∀y¬A(x,y))
¬A(a1,a1)
¬(∀y¬A(a1,y))
∃y¬¬A(a1,y)
¬¬A(a1, a2)
A(a1, a2)
¬A(a2, a2)
¬(∀y¬A(a2,y))
∃y¬¬A(a2,y)
¬¬A(a2, a3)
A(a2, a3)
(1)
(1)
(3)
(2)
(4)
(6)
(7)
(8)
(2)
(4)
(11)
(12)
(13)
Cette branche ne finit jamais et on obtient une suite de constantes a1, a2, a3, …avec les
formules : A(an, an+1) et et ¬A(an, an).
Logique et démonstration automatique – H. KANOUI
89
On définit alors l’interprétation I par :
- A(an, an+1) = Vrai
- A(an, am) = Faux
I[∀x¬A(x,x)] = Vrai
I[∃x∀y¬A(x,y)] = Faux.
Donc ∀x¬A(x,x) → ∃x∀y¬A(x,y) n’est pas logiquement valide.
Logique et démonstration automatique – H. KANOUI
90
Téléchargement