Rappels sur la logique

publicité
Chapitre 2
Rappels sur la logique
Une définition générale de la notion de logique mathématique ne sera pas donnée ici. On se contentera de
l’idée qu’une logique est un système formel — comprenant un système syntaxique de construction de formules —
auquel est associée une sémantique. Nous étudierons dans ce chapitre la logique propositionnelle et la logique du
premier ordre puis nous évoquerons rapidement d’autres logiques mathématiques classiques. Nous nous appuyerons essentiellement sur l’ouvrage suivant (beaucoup plus complet que ce chapitre) :
[1] Delahaye (J.-P.). – Outils logiques pour l’intelligence artificielle. – Eyrolles, 1986.
On peut trouver des cours de logiques sur le Web. Notons en particulier :
[1] A. Herzig. – Introduction à la logique, ! . – dernière
consultation : septembre, 2005.
2.1
2.1.1
La logique propositionnelle (LP)
Syntaxe
La formule suivante est une formule de LP :
"$#&%('&)+*,"$%.-0/()&1(24365(7&1(2&#()98:/(%&2(;9-:/=<><@?A"$1&2(B&;(2(5&7()C*D"$%9-:/()&1(2E?GFH#(%&'()=<><
Cette formule est constituée
F
?
3
*
– De connecteurs logiques : (« non »), (« et »), (« ou ») et (« implique ») ;
#(%('&) %.-0/()&1(2 5(7&1(2(#&)98:/(%(2&;9-:/
1&2(B(;&2(5&7()
– De variables propositionnelles (en l’occurrence,
,
,
et
).
On peut interpréter cette formule par
« Si un animal vole, alors c’est un oiseau ou une chauve-souris et une autruche est un oiseau qui ne
vole pas. »
F
Il y a un seul
connecteur unaire, c’est : il ne s’applique que sur une seule formule à la fois : si I est une
F
formule, alors I est une formule.
? 3 *
Les connecteurs binaires les plus ? utilisés3 sont * , , et J (« équivalent à »). Il y a aussi K (« ou exclusif »).
L ,I
L ,I
L , IMJNL et ICKOL sont des formules.
Si I et L sont deux formules, alors I
3+QR?+S
" 3+QT<&?+S
3U">QV?+SW<
Les parenthèses sont là pour éviter les ambiguïtés : on n’écrit pasF P ?
mais soit P
, * soit P
,
3
qui?Asont
deux formules différentes.
On considérera néanmoins
que , et sont prioritaires sur
et J . Ainsi,
Q*,S
" ?AQT<X*,S
?M">QY*DSW<
P
est identifié à P
et non pas à P
.
9
2.1.2
Sémantique
3Q*,S
Considérons
la
formule
propositionnelle
suivante
:
. Est-elle vraie? Cela dépend de la signification
0
I
\
Z
[
P
Q
S
Q
S
de P , et . Cette signification est binaire : P (resp., et ) s’interprète soit comme vrai (noté ] ) soit comme faux
(noté ^ ). Une interprétation _ d’une formule propositionnelle I est l’affectation de chacuneQ des variables
de I à
S
une valeur de vérité, c’est-à-dire à un élément de la paire `]ab^c . Par exemple, _edf`gPChi]a h,^a h,^akj+h,]c
est une interprétation de I0Z$[ (notons que cette interprétation contient l’affectation d’une variable propositionnelle
j qui n’apparaît pas dans I et dont la valeur d’affectation n’a pas d’importance pour l’interprétation de I ). En
Q
S
Q
S
l’occurrence, _ ne satisfait pas I0Z\[ : si P est vraie, est fausse et est fausse, alors « ( P ou ) implique » est faux.
De façon générale, pour savoir si une interprétation _ d’une formule I satisfait cette formule (synonyme : _
est un modèle de I ), ce qu’on notera _mlOI , on s’appuie sur les règles suivantes :
"
<qp
_ , alors _mlrn .
– Si n est une variable propositionnelle et que nohi]
"
<qp
– Si n est une variable propositionnelle et que nohi^
_ , alors _tr
sl n .
F
– Si I est une formule propositionnelle et que _ est une interprétation de I alors _Ol
I ssi _uO
sl I .
– Soit I et L deux formules et _ une interprétation commune à I et à L (autrement dit, elle contient l’affectation
de toutes les variables de I et de toutes les variables de L ). On a :
?
– si _mloI et _Ol6L alors _mlOI
L ;
3
L ;
– si _mloI ou si _mlvL alors _mlmI
*
*
L si, quand on a _OlOI alors on a _ml6L (p. ex., si _to
sl I , alors _OlmI
L );
– _OlOI
– _OlOIMJwL si, _mloI ssi _xlrL ;
– _OlOI+KOL si, une et une seule des deux affirmations _mlOI et _OlvL est vérifiée.
3yF
P et
Une formule I est une tautologie si, pour toute interprétation _ , on a _,liI . Par exemple, P
" *,QT<X*D">FXQ*,F <
P
P sont des tautologies.
Une formule I entraîne une formule L — ce qu’on note IzlvL — si, quel que soit le modèle _ de I , _ est aussi
un modèle de L (i.e., si _OlOI alors _mlvL ) 1 .
Deux formules I et L sont équivalentes, ce qu’on note I|{}L , si IzlvL et L+lOI .
On a les équivalences de formules suivantes ( I , L et ~ étant trois formules) :
?
?
I
L
{
L
I
(2.1)
3
3
(2.2)
I
L
{
L
I
" ? <@?
?A" ?
<
I
L
~
{
I
L
~
(2.3)
" 3 <@3
3A" 3
<
I
L
~
{
I
L
~
(2.4)
FF
(2.5)
I
{
I
FX" 3 <
F
?AF
I
L
{
I
L
(2.6)
FX" ? <
F
3AF
(2.7)
I
L
{
I
L
*
F
*,F
I
L
{
L
I
(2.8)
*
F
3
(2.9)
I
L
{
I
L
" *
<?M" *
<
IM{}L
{
I
L
L
I
(2.10)
FX"
<
ICKOL
{
IM{}L
(2.11)
(2.6) et (2.7) sont connues sous le terme « lois de de Morgan ». (2.8) est la loi de la contraposée (utilisée notamment
lors d’un « raisonnement par l’absurde »).
Notons par ailleur qu’on a, pour deux formules I et L :
*
IrlvL
ssi lOI
L
(2.12)
IM{}L
ssi
lOIMJNL
(2.13)
1. En toute rigueur, cette définition est incomplète. Par exemple, on a €‚‚€„ƒ†… , alors que le modèle ‡vˆo‰Š€Œ‹yŽ de € n’est pas une
interprétation de €ƒ… , puisque … n’est pas affecté dans … . Cependant, on peut montrer que les deux interprétations ‡‘ et ‡=’ obtenues en
ajoutant respectivement à ‡ l’affectation …Y‹t et l’affectation …‹u“ sont chacune un modèle de €Yƒ”… . En toute rigueur, il faudrait dire
que •†„– si pour toute interprétation ‡ de • et de – , si ‡ est un modèle de • alors ‡ est un modèle de – .
10
(2.12) s’appelle le théorème de la déduction.
Utilisation de tables de vérité. Soit I , une formule, — , l’ensemble des variables de I et ˜™d›š —œš . Il existe
0ž
interprétations de I construites uniquement sur les variables de I . La table de vérité de I comprend une
_ et
ligne par interprétation, les colonnes représentant les affectations des variables de I pour une interprétation
F
l’interprétation de la formule I elle-même (] si _OlOI , ^ sinon). Par exemple, la table de vérité de n est :
F
n
n
^
]
]
^
On peut avoir une table de vérité commune à plusieurs formules, par exemple :
?
3
*
n
Ÿ
n
Ÿ
n
Ÿ
n
Ÿ
noJNŸ
n6KmŸ
^
^
^
^
]
]
^
^
]
^
]
]
^
]
]
^
^
]
^
^
]
]
]
]
]
]
]
^
Pour prouver qu’une formule I est une tautologie, une méthode simple (dans le principe) est l’utilisation de
tables de vérité : il faut et il suffit de montrer qu’il n’y a pas de ^ dans la colonne de I de sa table.
Pour montrer qu’une formule entraîne une autre formule ou est équivalente
à elle, on pourra appliquer (2.12)
*
L , pour prouver I}{ L , on construira la
ou (2.13) : pour prouver IxlxL , on construira la table de vérité de I
table de vérité de I|JNL .
?A">Qq3¡ST<
" ?AQT<@3A" ?AST<
P
P
P
Par exemple, on veut montrer
que
les
formules
et
sont équivalentes. Cela revient
" ?M">Qq3GSW<><
">" ?AQT<@3M" ?AST<><
J
P
P
est une tautologie :
à prouver que la formule I6d P
Q
S
Qq3MS
?M">Qq3AST<
?AQ
?GS
" ?AQT<@3A" ?AST<
" ?A">Q¢3AST<><
">" ?MQT<@3A" ?AST<><
P
P
P
P
P
P
P
J
P
P
^
^
^
^
^
^
^
^
]
^
^
]
]
^
^
^
^
]
^
]
^
]
^
^
^
^
]
^
]
]
]
^
^
^
^
]
]
^
^
^
^
^
^
^
]
]
^
]
]
]
^
]
]
]
]
]
^
]
]
]
^
]
]
]
]
]
]
]
]
]
]
]
Exercice 3 Montrer par la méthode des tables de vérité les équivalences (2.1) à (2.11).
Principe de non pertinence de la syntaxe. Si I et L sont deux formules équivalentes ( IM{}L ) qui expriment des
connaissances, alors, les raisonnements qu’on peut faire à partir de I , on peut les faire à partir de L et inversement.
Par exemple, on a :
5(7(1&B+*£;&%(¤&;(%(¤&¤()
FH5&7(1&B¥36;(%&¤(;&%(¤(¤&)
{
5&7(1(B¦* ;(%&¤(;&%(¤(¤&)
Par
conséquent,
toute
conclusion
issue
d’un
raisonnement
sur
peut être* inférée à partir
de
F¢5(7(1&B†3Œ;(%(¤&;(%&¤(¤()
5&7(1&B+*
.
Par
conséquent,
se
demander,
par
exemple,
combien
il
y
a
de
symboles
«
»
dans
«
;&%(¤&;(%(¤&¤()
» relève de la syntaxe mais pas de la sémantique et n’est donc pas un raisonnement.
L’exemple suivant
est plus général. On a vu plus haut que, pour toutes formules I , L et ~ , on a
" ? <§?
?M" ? <
I
L
~¨{©I
L
~ . Comme la syntaxe n’est pas pertinente, les formules sont considérées modulo { . Par
?
?
" ? <H?
?G" ?
<
L
~ qui se lira I
L
~ ou I
L
~ : les deux formules ne sont pas égales
conséquent, on peut noter I
11
" 3 <3
3z" 3 <
mais sont équivalentes,
donc
on peut les assimiler sans risque. De la même façon, on a I
L
~f{ªI
L
~ ,
3
3
donc on peut noter I
L
~ , sans parenthèse.
Dans le même ordre d’idée, on peut montrer que, si I est une sous-formule de « et que L est une formule
équivalente
à I , alors la formule ¬FX">F
obtenue
en substituant
I par L dans « est équivalente à « . Par exemple,
F">F 3GFXQ*,ST<
" ?AQT<q*,ST<
F 3GFXQ
FX" ?AQT<
P
P
{
P
est équivalente à
car P
.
Bases de connaissances en LP. Une base de connaissances en LP est un ensemble ­&®¯d°`gI±WakIT²a0³0³0³:I0´c de
formules de cette logique. Une formule I est une conséquence de ? ­(® , ce
qu’on
note l§µ>¶·I si, ? pour? tout ? modèle
_
?
?
*
commun à I ± , I ² , ... et I ´ , _ est un modèle de I . Cela équivaut? à I ± ? I ² ? ³0³0³ I ´ lOI ou à lmI ± I ² ³0³0³ I ´
I .
IT²
³0³0³ I0´ .
C’est pourquoi on assimilera? souvent ­&® à la conjonction I±
On notera Irl§µ>¶L si ­(®
IzlvL (ou, de façon équivalente l µ>¶0¸(¹»º(¼ L ). Notons que si IzlvL alors Izl§µ>¶†L , mais
sl L , comme le montre le contre-exemple suivant :
que la réciproque peut être fausse : on peut avoir ICl@µ>¶†L et Ixv
%:¾(¾9)C*À¿&;(29-:B
F¢¿(;(2.-0B¥3GFH'(Á&Â(20¾.)
a
cga
avec ­(®Cdu`½
%:¾(¾9)
FH'&Á(Â&20¾9)
et
IMdý
L6d
on a ICl@µ>¶†L
et
IÄv
sl L
"
? <H*
*
Preuve : On va montrer Izl§µ>¶†L en prouvant l ­(®
I
L et on va prouver Ixv
sl L en prouvant que I
L n’est
pas une tautologie. On utilise pour cela la méthode des tables de vérité :
Å+Æ6ÇÈÉÉ ÇÈÉÉ ÎÏ
Ê
Å ÎÔÍ
Ê
ËÌ!Ê É Í
Ð9
ʆѷÐ9ËÌ!Ê É Ò
Ò†Ó Å
Ò”Ó Å Î Í
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
Õ
?
*
*
I
L est une tautologie alors que I
L ne l’est pas.
Ö
On voit ainsi que ­&®
µ>¶
Deux formules I et L sont équivalentes modulo une base de connaissances ­(® — noté I {×L — si I|l µ>¶ L et
µ>¶
Lzl§µ>¶EI . Notons que si IM{eL alors I {}L mais que la réciproque est fausse.
Satisfiabilité. Une formule I est satisfiable s’il existe un modèle de I (i.e., s’il existe une interprétation _ de I
telle que _OlmI ). Autrement dit, dans la table de vérité de I , il y a au moins
un ] .?
?
Une base de connaissances ­(®+dØ`gI ± akI ² a0³0³0³I ´ c est satisfiable si I ±
I ² ³0³0³ I ´ est satisfiable.
Si ­(® n’est pas satisfiable alors elle est dite incohérente
(on
dit
aussi
inconsistante)
et elle permet de prouver
F
tout (et son contraire
!).
Par
exemple,
la
base
­(®|dÙ`gP=a P=c est incohérente et, quelle que soit la formule I , on a :
F
l@µ>¶EI et l.Ú@Û
I . Autrement dit, on ne peut rien faire d’utile avec une base de connaissances incohérente.
On a l’équivalence suivante :
F
ssi
I est une tautologie
I n’est pas satisfiable
F
Une preuve réfutationnelle du" fait
que
soit
une
tautologie
consiste
à
prouver
que
Par
I
I n’est pas satisfiable.
?AQT<
">QX? <
F">" ?¡QT<
J
P , il suffit de prouver qu’il n’existe pas de modèle de
P
J
exemple,
pour prouver que l P
">Qq? <><
P .
2.1.3
Inférences déductives
L’approche de LP présentée ci-dessus est sémantique. Ci-dessous, nous présentons une vision syntaxique de
LP qui s’appuie sur la notion de système formel, puis, nous verrons les liens entre la syntaxe et la sémantique.
12
Notion de système formel. La notion de système formelle est définie rigoureusement dans l’ouvrage de Delahaye cité en tête de chapitre. Nous en présentons ici une définition simplifiée. Un système formel est donné
par
– Un ensemble de mots sur un alphabet donné appelé
ensemble< des formules bien formées (on dira, par la
3Ü">FQG*
P
P est une formule bien formée de LP, mais
suite,
simplement
«
formules
»),
par
exemple,
3 FX<>Q¢?M?X"
P
n’en est pas une.
– Un ensemble d’axiomes, sous-ensemble de l’ensemble des formules.
I±qIT²¡³0³0³I0Þ
Ý , qui se lit « à partir de I± , IT² , ... et I0Þ , on
– Un ensemble de règles d’inférence Ý , notées
L
2
peut conclure L ».
Étant donné un système formel ß , une preuve dans ß d’une formule I à partir d’un ensemble de formules
`g~9±0ak~²a0³0³0³à~ ž c (appelées hypothèses) est une séquence de formule I± , IT² , ... I0´ telle que I0´mdwI et, pour tout

á p
`gâga a0³0³0³ãVc , I0ä est
– soit un axiome de ß ,
p

– soit une des hypothèses ~(å (æ
`gâga a0³0³0³˜c ),
á
– soit une formule qu’on peut conclure grâce à une règle d’inférence Ý à partir de formules I0ç , avec èEé
:
I0ç ‘ 0I ç ’ 0³ ³0³I0çëê
I0ä
Ý
avec âUìx菱é
á
a”³0³0³â+ìxè0Þ·é
á
La notation ~ ± ak~ ² a0³0³0³à~ žfí I signifie qu’il existe une preuve de I à partir de `g~ ± ak~ ² a0³0³0³:~ ž c . Soit ­&®yd
`g~9±0ak~²a0³0³0³à~ ž c . ~V±Wak~²&a0³0³0³:~ ž í I sera aussi noté í µ>¶EI .
Un théorème de ß est une formule I prouvable dans ß à partir d’un ensemble vide d’hypothèses : on conclut I
en appliquant uniquement les axiomes et les règles d’inférence, autrement dit, íî I , ce qu’on note plus simplement
í I .
Un système formel pour le calcul propositionnel dans
LP.
Dans un premier temps, nous allons définir un
F
*
système formel sur les formules de LP construites sur et
(repris de l’ouvrage de Delahaye). Nous verrons
plus loin comment l’étendre aux formules de LP en toute généralité. Ce système est tel que :
? 3
– Ses formules bien formées sont les formules de LP sans les connecteurs , , J ni K .
– Ses axiomes sont les formules de la forme :
ï *,">ðÔ* ï <
(SA1)
" ï *,">ðÔ*,ñŒ<><q*©">" ï *,ð+<q*," ï *,ñŒ<><
(SA2)
">F ï *,FXð+<q*,">ðÔ* ï <
(SA3)
ð
ñ
ï
où ,
et
sont des formules quelconques de ce système formel (il y a donc une infinitié d’axiomes
construits sur ces trois schémas d’axiomes).
ï£ï *,ð
ð
òMã .
– La seule règle d’inférence est le modus ponens, noté òMã :
F
*
í
n
Ÿ . En effet, on a la preuve ci-dessous :
Dans ce système formel, on a n
F
hypothèse
I± : F n *,">F
*,F <
IT² :
n
Ÿ
n
cf. (SA1)
F
*DF
I±IT²
ITó :
Ÿ
n
òMã
I ó
">F
*,F <q*," *
<
ITô :
Ÿ
n
n
Ÿ
cf. (SA3)
*
ITó¥ITô
ITõ : n
Ÿ
òMã
I õ
2. Dans l’ouvrage de Delahaye, « déduire » est utilisé à la place de « conclure ». Nous préférons ce dernier verbe, car nous avons
défini la notion de déduction au chapitre 1 en lien avec la notion sémantique de vérité, alors que Delahaye utilise ce terme avec un sens
intrinsèquement lié aux règles d’inférence ; nous utiliserons, à la place de « déduire », au sens de Delahaye, le terme de « prouver », comme
nous le verrons plus loin.
13
? 3
Incorporation des autres connecteurs. Il y a plusieurs façons d’« incorporer » les connecteurs , , J et K
dans le système formel décrit ci-dessus. Une première
façon de faire consiste à enrichir le système formel par de
3
nouveaux axiomes. Par exemple, pour incorporer , on pourra utiliser les deux schémas d’axiomes suivants :
ï 3AðÔ*,">F ï *,ð+<
">F ï
*Dð+<q*
ï
3Að
On peut aussi l’enrichir par de nouvelles règles d’inférence.
? 3
Une troisième façon de faire consiste à considérer , , J et K comme des symboles d’un méta-langage
(semblable à des 3 macros, telles qu’on
en trouve dans certains langages de programmation), sachant,
par exemple,
F
*
? 3
Ÿ sera réécrite n
Ÿ . On peut définir, de façon générale, les symboles , , J et K par :
que la formule n
F ï *,ð
ï 3Að
est réécrit en
(2.14)
FX">F ï 3AFXð+<
ï ?Að
est réécrit en
(2.15)
" ï *,ð+<§?A">ðÔ* ï <
ð
ï
J
est réécrit en
(2.16)
ð
FX" ï
ð+<
ï
est réécrit en
(2.17)
K
J
FX"
<
F">" *
<?C" *
<><
FXF">FX" *
<3CFX" *
<><
Ainsi, n·K6Ÿ FXsera
réécrit successivement
en <>< noJwŸ , en
n
Ÿ
Ÿ
n , en
n
Ÿ
Ÿ
n
FX">">FFX" *
<><4* FX" *
n
Ÿ
Ÿ
n
et enfin en
quiFXest
une*,
formule
du système
formel précédant. De cette façon,
?MQ
3AQ
">FXF
FXQT<
F
*,Q
í
í
l’affirmation P
revient à l’affirmation
.
P
P
P
? 3
On a ainsi étendu les notions de preuve et de théorème aux formules de LP contenant , , J et K .
Liens entre í et l . En fait, ce qui nous intéresse, pour une formule I donnée, c’est de savoir si lÄI ou non. Le
test í I qu’on cherche à réaliser informatiquement doit, idéalement, coïncider avec l×I . Cet idéal correspond à
deux propriétés qui sont la correction et la complétude d’un système d’inférence syntaxique ( í ) :
correction : pour toute formule I , í I entraîne lOI (si I est un théorème alors I est une tautologie) ;
complétude : pour toute formule I , lmI entraîne í I (si I est une tautologie alors I est un théorème).
Notons que la propriété de correction est très importante : si on n’a pas cette propriété, alors le système formel
permettra de prouver des théorèmes qui sont faux ! Il est bon d’avoir la complétude également, mais c’est un idéal
qu’on n’atteint pas toujours.
Quoi qu’il en soit, le système formel défini ci-dessus est correct et complet. Cela signifie qu’une formule I de
LP est un théorème (au sens de ce système formel) ssi c’est une tautologie.
Remarque 2 Il existe d’autres systèmes formels pour LP, s’appuyant sur d’autres axiomes.
2.1.4
Note sur la complexité
De façon générale, la complexité des inférences d’un système de représentation des connaissances dépend
non seulement des inférences, mais aussi du langage de représentation. Il est bon de savoir que pour la logique
propositionnelle et pour tous les algorithmes connus implantant un test í I (correct et complet), aucun ne le fait en
temps non exponentiel (dans le pire cas) en fonction du nombre de variables ˜ (c’est un problème algorithmique
appartenant à la classe des problèmes NP-complets). C’est d’ailleurs le temps que cela prend pour l’utilisation de
 ž
tables de vérité (qui contient
lignes).
Cependant, il existe des algorithmes perfectionnés qui sont relativement efficaces pour la plupart des cas pratiques, avec un nombre de variables propositionnelles pas trop élevé...
14
2.1.5
Exercices
Exercice 4 « Traduire » en LP les phrases suivantes :
– Quand il pleut, je prends mon parapluie ou mon chapeau.
– Aucun mammifère n’est ovipare, sauf l’ornithorynque et l’échidné.
Exercice 5 On considère les affirmations suivantes (d’après Lewis Carroll) :
(1) Aucun canard ne danse la valse.
(2) Aucun officier ne refuse jamais de danser la valse.
(3) Toutes mes volailles sont des canards.
Transcrire chaque affirmation en formule propositionnelle.
Sachant que Maurice est une de mes volailles, on se pose la question suivante : « Maurice est-il officier? » On
demande :
– De formaliser cette question sous la forme I í L (ou IrlvL ) ;
– D’y répondre en utilisant la méthode des tables de vérité.
2.2
2.2.1
La logique du premier ordre (L ö O)
Syntaxe
L â O étend LP grâce aux notions de constantes, de variables, de fonctions, de prédicats et de quantificateurs.
À titre d’exemple, considérons la base de connaissances constituée des formules suivantes :
;&)="
<
;()"
<? 1&;()(¤&B="
<><
÷ ÷ "$Â(;&1(¤&ø98
n Ÿ
½&ù
nHa Ÿ J,úû„½(ù
nHakû
½
ûa Ÿ
;&)=" 1 1" < <ü?Œ¾ ;()"ý¾.10¾.1(¤" < <
÷
n|½&ù
½ ½ n an
ù
n an
<@3Œ¾ ;()"
<
1(;()&¤(B"
<><
÷ ÷ " ;&)="
n Ÿ ½&ù
nHa Ÿ
ù
nHa Ÿ J£½
nHa Ÿ
;()"$þ&Á(%&¤ ¾91:¾91&¤" 1(B(7&)(;.-0¤()<><
½(ù
a
®
þ&Á(%&¤
Â(;&1(¤(ø.8
;() ¾ ;&)
1&B(7()&;9-:¤()
;()
1(;&)(¤&B
½&ù
ù
n , Ÿ et û sont des variables,
et
®
sont
des
constantes,
,
,
½&ù
et
½
sont des
1 1
¾910¾.1(¤
÷
sont des noms de fonctions unaires, est le quantificateur universel
noms de prédicats binaires, ½ ½ et
(prononcé « pour tout ») et ú est le quantificateur existentiel (prononcé « il existe »).
À chacun des noms de prédicats et des noms de fonctions est associée une arité qui est un entier naturel.

Un nom de prédicat unaire (resp., binaire) est d’arité â (resp., ). En particulier, les constantes sont les noms de
fonctions d’arité ÿ (parfois, on les distingue des noms de fonctions, pour des raisons de lisibilité).
Nous allons définir ce qu’est une formule de L â O en introduisant les notions de terme et d’atomes.
On se donne
des ensembles dénombrables disjoints deux à deux : celui des variables (n , Ÿ , û , ...), celui des
Q S
constantes ( P , , , ...), celui des symboles de fonctions ( , , ...) et celui
des symboles
de prédicats (ã , , Ý , ...).
" <
ž
±Ta ²ak³k³k³
Un terme de
L â O est
soit une variable, soit une constante, soit
où est un symbole de fonction
d’arité ˜ et où ± , ² , ... ž sont des termes. Exemple de termes :
"
<
">Q Q <
"
"
"
<><><
P
n
P=a n
a aŸ
P&a P=a P=a n
On notera que pour"><les constantes, qui sont des symboles de fonctions d’arité ÿ , on omet en général les parenthèses :
p. ex., au lieu de P , on note P .
" <
Un atome de L â O est de la forme ã ±Ta ²gak³k³k³ ž où ã est un symbole de prédicat d’arité ˜ et où ± , ² , ... ž sont
des termes. Exemples d’atomes :
" <
" <
"
<
"
" <><
ã P
ã n
n¢a Ÿ
n¢a
Ÿ
15
F
*
÷
Une formule de L â O est soit un atome, soit d’une des formes
I ,I
L et n¢I où I , L et n sont deux
3 ?
formules et une variable de L â O. On ð incorpore les connecteurs , , J et K en utilisant les règles (2.14) à (2.17)
ï
(page 14) sauf que les formules et sont supposés être de L â O. On incorpore le quantificateur ú en utilisant la
règle
F ÷ F
únHI
est réécrit en
(2.18)
n I
" <§3 " <
F ÷ FX" " <§3 " <><
F ÷ FX">F " <¢*
" <><
n
ã n
n
ã n
n
Ainsi, ún+ã n
sera réécrit en n
puis en n
.
On utilise parfois le mot « expression » pour dénoter les termes et les formules (une expression est soit un
terme, soit une formule).
Considérons la formule I suivante :
" <ü? ÷
"
<
ã n
Ÿ nHa Ÿ
Formules ouvertes, formules closes.
Ÿ est une variable dite liée : son « utilisation » est précédée de sa quantification (en l’occurrence, de sa quantification
÷
universelle : Ÿ ). En revanche, n est libre : il n’y a pas de quantification qui précède son introduction. Cela entraîne
que l’on peut remplacer I par une autre formule équivalente en remplaçant la variable libre, Ÿ , par une autre
variable qui n’apparaît pas dans la formule, mettons û :
" <§? ÷
"
<
ã n
û nHakû
Une formule est ouverte si elle contient au moins une variable libre. Sinon, elle est close (ou fermée). Dans
la suite, quand on aura une formule ouverte, on considérera qu’il y a une quantification
universelle
implicite sur
" <q? ÷
"
<
ã n
Ÿ nHa Ÿ est équivalente à
toutes
les
variables
libres
(sauf
mention
explicite
du
contraire).
Par
exemple,
" " <¢? ÷
"
<><
"
<
"
<
÷
÷ ÷ ÷
et Ý nHa Ÿ§akû équivaut à n Ÿ ûYÝ n¢a Ÿ.akû . Par conséquent, sous cette hypothèse, toutes les
n ã n
Ÿ n¢a Ÿ
formules sont logiquement équivalentes à des formules closes.
2.2.2
Sémantique
La plus grande partie de ce qui a été dit de la sémantique de LP se transpose pour L â O. La notion d’interprétation d’une formule, cependant, est plus délicate. Nous allons l’introduire pour une formule I de L â O, en prenant
comme exemple la formule close suivante
<><*DF ÷
">Q
<><
÷ " " "
I0Z\[
d
n ã
nHakP
Ÿ a n¢a Ÿ
" <
a Une interprétation
de I est un couple _}d
où
est un ensemble non vide appelé domaine d’interprétation et où , la fonction d’interprétation, associe
p – À une constante P de I , la valeur P
,
ž – À un symbole de fonction de I d’arité ˜ , une fonction
,
˜ -aire ã sur
ã
– À un symbole
de prédicat ã de I d’arité ˜ , une relation
, autrement
ž
"
< dit, est un sousž ensemble
de
qu’on notera
comme
une
fonction
ã
`]ab^c : n¢±Wa nV²a0³0³0³n ž sont en relation par
"
<Xp
"
<
ã se note indifféremment n¢±Ta n9²a0³0³0³ën ž
ã et ã n¢±Wa nV²a0³0³0³n ž .
" <
a Par exemple, une interprétation de I0Z\[ est _ d
avec :
P
d
Q
du
â
"
ã
d

mp
"
a
<p
a .a !
<”p
ž
"
ó
p
<p
est pair
" 16
`]ab^c
6d!
<p
`]ab^c
Pour I , une formule close de L â O, on veut
définir « _ satisfait (resp. ne satisfait
pas) I : _OlOI (resp.
_yO
sl I ). »
p
valeur I puis
on
pose
ssi
.
La
valeur
de
est
définie
en
Pour ce faire, on associe à I une
`
]
b
a
^
c
m
_
x
l
I
I
y
d
]
I
ï
ï
pour un terme et un atome .
s’appuyant sur la définition de et de
Soit —edØ`Wn¢±Ta n9²a0³0³0³ën9´gc un ensemble fini de ã variables contenant les variables de I . Dans l’exemple de I0Z\[ ,
on peut prendre
—}du`WnHa Ÿ§c
(il faut au moins deux variables, mais on aurait pu en avoir d’autres). Soit un terme dont les variables appartiennent à — . On associe à une fonction
" <q"
p ´ " <Xp
±Ta ²ga0³0³0³ ´
±Ta ²a0³0³0³ ´
de la façon suivante :
" <
±Ta ²ga0³0³0³ ´ duP (fonction
constante).
– Si est une constante, duP , alors
" <
ème
±Ta ²a0³0³0³ ´ d
Þ .
projection » :
– Si est une variable d}n9Þ , alors est la « #
" <
ž
± a ² ak³k³k³
, alors
– Si est de la forme
" <
" " < " <
" <><
± a ² a0³0³0³ ´ $
± a ² a0³0³0³ ´ a ²
± a ² a0³0³0³ ´ a0³0³0³ ž
± a ² a0³0³0³ ´
d
±
En considérant les termes contenus dans I0Z\[ , il vient :
" &%(< 
P [a
Q
" &%(< [a
â
" &%(< n [a
[
" &%(< &%
Ÿ [a
" "
<><
" &%(< "
<
"  <

n¢akP
[a
n akP
d'
[a
d
[


Notons que P est à la fois la constante et la fonction constante de valeur : nous ne faisons pas de différence
entre les deux.
Une formule I de L â O (ouverte ou close) s’interprète par une fonction
" <X
p ´ " <Xp
I
±Ta ²a0³0³0³ ´
I
±Ta ²a0³0³0³ ´
`
] ab^c
de la façon suivante :
" <
– Si I est une atome I6deã T± a g² ak³k³k³ ž , alors
" <
" " < " <
" <><
I
±Ta ²ga0³0³0³ ´ }
d ã
T± a ²a0³0³0³ ´ a ²
T± a ²a0³0³0³ ´ a0³0³0³ ž
T± a ²a0³0³0³ ´
±
Sur l’exemple des atomes contenus dans I0Z\[ :
" " "
<><>< " &%&<
>" " "
<>< " &%(<><
ã
H
n
k
a
P
[
a
d
}
ã
¢
n
k
a
P
[ a
d
" ">Q
<>< " &%&<
" (
&%&<
a nHa Ÿ
[a
d â
[+d
F
– Si I est de la forme L , alors
" <
" <
I
±Ta ²a0³0³0³ ´ d si L
T± a ²a0³0³0³ ´ y
d ]
"
 <
[
est pair
alors ^
sinon ]
*
~ , alors
– Si I est de la forme L
" <
I
T± a ²a0³0³0³ ´ d
si L
"
±Ta ²a0³0³0³ ´
alors ]
sinon ^
17
<
dy^ ou si ~
"
±Ta ²a0³0³0³ ´
<
dy]
÷
– Si I est de la forme +
n L , n n’étant pas une variable de L ,alors
" <
" <
I
±Ta ²a0³0³0³ ´ d}L
±Wa ²a0³0³0³ ´
÷
– Si I est de la forme n.ä=L , n.ä étant une variable de L , alors
" <
&) p " &) <
I
±Ta ²a0³0³0³ ´ d si quel que soit ä
,L
±Ta ²ga0³0³0³ +ä *§±a ä a ä+,§±Wak³k³k³ ´ dy]
alors ]
sinon ^
Sur l’exemple, cela donne :
(
&%
"÷
">Q
<><
" -%(< -%
[+d
Ÿ a n¢a Ÿ
[a
^
(à [ fixé, il n’est pas vrai que pour tout
on ait â
)
">F ÷
">Q
<><
" -%(< Ÿ a n¢a Ÿ
[=a
]
" &%&< I Z\[
[a
]
"÷
< " <
"÷ ÷
< " <
n.äýL
±Ta ²a0³0³0³ ´ ne dépend pas de ä . De même
±Ta ²ga0³0³0³ ´ ne dépend
On notera que
" n9ä Ÿ( å\L <
± a ² a0³0³0³ ´ ne dépend d’aucun des ä
ni p de ä ni de å . Plus généralement, si I est une formule cloase,
I
" <
" <¥p. ´

á
`g âga ak³k³k³ ãVc ). Par conséquent, si I est close, alors soit I
±Wa ²a0³0³0³ ´ d ] pour tout ±Ta ²a0³0³0³ ´
(
,
" <
" <†p ´
soit I
. Cette valeur, ] ou ^ , est notée I . Dans l’exemple, on
±Ta ²ga0³0³0³ ´ dØ^ pour tout ±Ta ²a0³0³0³ ´
a I Z\[ dy] et donc _mlmI0Z$[ .
? 3
les règles
Par ailleurs, cette interprétation s’étend
aux
formules de < L â O contenant">F , , J < , "K et ú en utilisant
"
< " <
÷
± a ² a0³0³0³ ´ se défini par
± a ² a0³0³0³ ´ .
(2.14) à (2.17) et (2.18). Par exemple, úgnCL
n£s L
Exemple. Considérons la formule suivante :
"
<§? "
<X*
÷ ÷
n Ÿœã P=a n
ã nHa Ÿ
"
<
ã =
P aŸ
On peut considérer une infinité d’interprétations pour cette formule. Par exemple :
d
l’ensemble de tous les êtres humains
d
moi
ã
"
P
n¢a Ÿ
<
d}Ÿ est un ami de n
Pour cette interprétation, la formule ci-dessus se comprend comme « Les amis de mes amis sont mes amis. »
Considérons une autre interprétation :
d ã
P
"
n¢a Ÿ
<
d$/
"
d
nÄìxŸ
<
La formule s’interprète alors en « si n"01/ et Ÿ20Än , alors Ÿ30./ ».
Soit I , une formule de L â O et _ , une interprétation de I . _ est un modèle de I (ou _ satisfaitpI ), ce qu’on
÷
I est vraie, sachant que n s’interprète comme « pour tout n
note _mlmI si dans cette interprétation,
» et que
p
tel que ».
úgn s’interprète comme « il existe n
_ est un modèle de I , dans le premier exemple ci-dessus, à condition que les amis de mes amis soient effectivement mes amis. Pour le deuxième exemple, _tluI car l’affirmation « si 4
n 05/ et 6
Ÿ 0un , alors 6
Ÿ 0un » est
effectivement vraie. En revanche, si on définit _ de le façon suivante :
d
ã
"
P
nHa Ÿ
<
d
d$/
"
nmd}Ÿ
18
â
<
alors _tO
sl I comme l’indique le contre-exemple suivant : /œd7
â , 7rd'8
â et /rd'
s 8
â .
Exercice
6 Pour chacune des formules closes I suivantes, donner un modèle de I (s’il en existe un) et un modèle
F
de I (s’il en existe un) :
"
<
÷
– n¢úŸEã nHa Ÿ ;
"÷
" <><X*,"
" <><
– n+ã n
;
únCã n
"
" <><X*," ÷
" <><
– ún+ã n
;
nCã n
" ÷ F " <><
">F
" <><
– n ã n
J
ún+ã n
Propriétés de formules et de bases de connaissances en L â O. Les notions de satisfaction, de modèle, de tautologie, de non pertinence de la syntaxe, de base de connaissances, de preuve réfutationnelle, etc., se transposent
directement de LP à L â O (et à bien d’autres logiques).
Concernant les propriétés d’équivalence sur les formules, en plus de celles qui se transposent des propriétés
d’équivalence des formules de LP, il est bon de noter les suivantes ( I étant une formule ouverte ou close de L â O) :
F ÷
F
nAI
{
ún
I
(2.19)
F
÷ F
(2.20)
únAI
{
n
I
÷ ÷
÷ ÷
n ŸrI
{
Ÿ nMI
(2.21)
ún¢úŸrI
{
úŸ§únMI
(2.22)
Les deux équivalences (2.19) et (2.20) permettent de montrer qu’on a :
F ÷
1&;()(¤&B"
<
F
1(;&)(¤&B="
<
<
÷ F 1(;()&¤(B"
n¢úŸU½
n¢a Ÿ
{ªún úgŸ+½
nHa Ÿ
{ªúgn Ÿ
½
nHa Ÿ
La méthode des tables de vérité ne s’applique pas pour prouver qu’une formule de L â O est une tautologie. Il
existe d’autres méthodes pour cela dont l’examen ne fait pas l’objet de ce cours car elles sont complexes à décrire
et relativement hors-sujet. Notons la méthode des tableaux sémantiques qui est une méthode réfutationnelle.
Lien entre LP et L â O.
Considérons la formule suivante de LP :
1 2&'()&BE3=<(%:¾9Á&%
9 %&¤(B(1.-0Â&2+*;:&Á(B()&/(B&)(þ()&/
® ½
Pour la traduire en
L O, il suffit de considérer une variable, mettons n , de remplacer toutes les variables proposi" < â
tionnelles ã par ã n (ã sera alors un nom de prédicat) et de rendre la formule close par quantification universelle :
* :&Á(B&)(/(B&)(þ&)(/ 1 2('()&B" <§
3 <(%:¾9Á(%" <
÷ 9 %(¤&B(19-:Â(2" <X;
n
n
® ½
n
n
Ici, seul un acteur intervient explicitement : il correspond à la variable n . En L â O, on peut représenter la même
idée (« à part Roméo, tous les Montaigu détestent tous les Capulet ») de la façon suivante :
* <(%:¾9Á&%" <ü3A" ÷
1 2&'()(B" <*£ø(Á&B()(/&B()"
<><
÷ 9 %&¤(B&19-0Â&2" <X;
n
n
n
Ÿ+® ½
Ÿ
nHa Ÿ
2.2.3
Inférences déductives
On peut définir des systèmes formels pour L â O qui permettent de définir la notion de théorème, comme pour

LP. Par exemple, le système formel du livre de Delahaye pour L â O est donné par / schémas d’axiomes et règles
19
d’inférence. Les 8 premiers schémas d’axiomes sont ceux de LP : (SA1), (SA2) et (SA3). S’y ajoutent les deux
schémas d’axiomes suivants :
"÷
" <><*
" 0<
n
n
(SA4)
" *
<q*," * ÷
<
L
I
L
nHI
(SA5)
où n
est une variable,
est un terme et L est une formule n’ayant pas n
pour variable libre. Une des règles
I
L où n
d’inférence est le modus ponens òMã (cf. page 13). L’autre règle est la règle de généralisation L : ÷
nAI
est une variable et I une formule de L â O.
Dans ce système formel, on a
"
<
"
<
÷ ÷
÷
n ŸEã n¢a Ÿ í û†ã ûakû
(exemple pris du livre de Delahaye). En effet, on a la preuve suivante :
"
<
÷ ÷
I± :
n Ÿœã n¢a Ÿ
hypothèse
"
<X* ÷
"
<
÷ ÷
IT² :
cf. (SA4)
n Ÿœã n¢a Ÿ
Ÿœã ûa Ÿ
"
<
÷
I±XIT²
ITó :
Ÿœã ûa Ÿ
òMã
ITó
"
<*
"
<
÷
cf. (SA4)
I ô :
Ÿœã ûa Ÿ
ã ûakû
"
<
ITó‚ITô
I õ : ã û(akû
òMã
I õ
"
<
÷
I õ
I > :
?
û†ã û(akû
L
I >
Les notions de correction et de complétude dans L â O ont les mêmes définitions que dans LP. On peut montrer
que ce système formel est correct et complet. Autrement dit, pour tout I de L â O, í I ssi lOI .
2.2.4
Semi-décidabilité de L @ O
L â O est semi-décidable, ce qui signifie que le test í I (ou lmI ) est semi-décidable. Ce qui signifie qu’il existe
un programme qui étant donné une formule I de L â O en entrée réagira ainsi :
– Si í I alors la procédure retourne oui.
– Sinon, la procédure soit retourne non, soit ne s’arrête pas.
En revanche, il n’existe aucun programme qui déterminera systématiquement si í I ou non (en un temps fini) : ce
n’est pas un test décidable.
Pour cette raison, on définit des formalismes qui sont équivalents à des fragments décidables de L â O, en
particulier : Prolog (chapitre 3) et les logiques de descriptions (chapitre 4).
2.2.5
Exercices
Exercice 7 « Traduire » en L â O les phrases suivantes :
– À père avare, fils prodigue.
– Aucun avare n’est altruiste.
– Personne, excepté les avares, ne conserve les coquilles d’œufs.
– Aucune personne altruiste ne conserve les coquilles d’œufs.
Exercice 8 Les trois dernières phrases de l’exercice précédant sont dues à Lewis Carroll. On se pose la question
« La troisième phrase peut elle se déduire des deux premières? » Formaliser cette question.
20
"
<
Exercice 9 Soit A&BDCFEFG-H , I&JLK-MFGDMFG et
K-BFNFODP&QRMFG les prédicats tels que A-BFCFEDG&H nHa Ÿ
se lit « n est un parent (au
" <
" <
sens père ou mère) de Ÿ », I&JLK-MFGDMFG n (resp., K-BFNFODP&QRMFG n ) se lit « x est de sexe féminin (resp., masculin) ». On
peut, en s’appuyant sur ces prédicats, définir d’autres prédicats par des axiomes. Par exemple, on peut définir le
prédicat K&SFCDE par :
"
<
"
"
<ü?
" <><
÷ ÷
n T
Ÿ K&SDCFE nHa Ÿ J
A&BDCFEDG&H n¢a Ÿ
K&BDNFOFP-QLMDG n
Définir de façon similaire les prédicats binaires A&SFCDE , U-CFBFGDV&WXA&BFCDEFG-H , U&CDBFGFV-WYK-SFCFE , U&CDBFGFV-WYA-SFCFE , U&CDBFGFV-WYK-SFCFE-WYA-B&HLEDCFGDE&QFQRE ,
NRZ&PDC , I-CFSFCDE , VDELK&M-WLNRZ&PFC , VFERK&M&WXI&CDSFCFE , HLBDG&HLE , [FGDO&QLE , GFMDSFOFE , GFED\FEDP , OF[DPFNDMFGFE , OF[DPFNFMDG (en se limitant pour les
cousines et les cousins aux enfants des oncles et tantes), BFNDOFEDGFVFBDG&H et VFEDNFOFEDGFVDBFG&H .
2.3
2.3.1
D’autres logiques classiques
Logiques d’ordres supérieurs


La logique d’ordre (L O) étend L â O par l’introduction de prédicats variables et de fonctions variables. Les
quantificateurs universels et existentiels peuvent s’appliquer sur ces prédicats et fonctions. De plus, on peut avoir
des fonctions qui portent sur des fonctions. Par exemple, le principe de récurrence en arithmétique peut s’exprimer
ainsi :
" <q*
" " <><><X*," ÷
" <><><
÷ ">" " <ü? ÷
ã ã ÿ
n+ã n
ã ß n
nCã n

Le problème est que L O est essentiellement incomplète, ce qui signifie qu’il n’existe aucun système formel

correct de L O qui soit complet. Autrement dit, on ne peut définir de système formel ß pour lequel, pour toute

formule I de L O, í I équivaut à lOI ( í se comprenant au sens du système formel ß ). Ceci est une conséquence
du théorème de Gödel de 1931 sur l’incomplétude de l’axiomatisation classique de l’arithmétique (qui a été publié
en français en 1989, au seuil, avec un article introductif de Nagel et Newman et un article de Girard). Beaucoup de
discussions philosophiques ont fait suite à ce résultat, en particulier sur la question de savoir s’il peut y avoir une
« IA forte », i.e., un artefact capable de simuler complètement l’intelligence humaine. En particulier le livre
[1] Hofstadter (D.). – Gödel, Escher, Bach, les brins d’une guirlande éternelle. – Paris, InterEditions, 1985.

Autres logiques d’ordres supérieurs. On peut étendre L O en L 8 O, la logique d’ordre 8 , dans laquelle on peut
avoir des fonctions portant sur des fonctions qui portent sur des fonctions. On peut continuer avec L7 O, L / O, etc.

En pratique, les logiques L˜ O, avec ]
ont peu d’intérêt pratique pour la représentation des connaissances,
˜ 0
puisqu’elles sont essentiellement incomplètes.
2.3.2
Logiques modales
Il existe des logiques modales étendant LP et des logiques modales étendant L â O. Contentons-nous des premières.
Syntaxiquement, une logique modale étendant LP est constituée
des formules
de LP et des formules de la
" 3zQT<q*
" 3zQT<
forme ^‚I , _ŒI où I est une formule de la logique modale. Ainsi, ^ P
est une formule d’une telle
_
P
logique.
La sémantique mathématique de ces logiques s’appelle sémantique des mondes accessibles (ou sémantique de
Kripke). Nous ne la développerons pas ici.
De façon plus intuitive, nous allons décrire la sémantique d’une logique modale temporelle :
– I signifie que I est vrai à l’instant présent ;
– ^‚I signifie que I est toujours vrai ;
21
– _4I signifie que I sera vrai à l’instant présent ou à un instant au moins de l’avenir.
-:'Fa '()&2(B
)
Par exemple,
la formule ^`_ -:'Fa '(½ )&2(B
signifie qu’à tout instant , il y a un instant
tel qu’il pleuvra à
0
)
½
l’instant . La formule _b^
signifiera, quant à elle, qu’à partir de maintenant ou d’un instant futur, il
pleuvra toujours.
Dans une logique modale pour exprimer la connaissance sur la connaissance (ou logique épistémique) on peut
exprimer que « L’agent P sait que la * connaissance ã est vraie », ce qui se note ^dcTã . Dans* une telle logique, on a en
général les axiomes suivants : ^ec0ã
ã (si P sait que ã est vrai, alors ã est vrai), ^ec0ã
^dcf^dc0ã (principe d’inF
*
F
^dc
^dc0ã (principe d’introspection négative :
trospection positive : si P sait ã , alors P sait qu’il sait ã ) et ^dc0ã
si P ne sait pas ã , alors P sait qu’il ne sait pas ã ).
Une logique déontique est
* une logique modale dans laquelle ^ exprime une obligation et _ une permission.
_ã exprime le fait que ce qui est obligatoire est permis.
En particulier, l’axiome ^qã
2.3.3
Autres logiques
Il existe bien d’autres logiques utilisées en RC.
Notons l’existence de logiques dites non monotones. Les logiques présentées ci-dessus sont dites monotones.
Cela signifie intuitivement que, une fois qu’on a prouvé leI , I sera établi définitivement comme vrai. Cela n’est
pas vrai pour les logiques non monotones : pour de telles logiques, on peut établir provisoirement I , puis le remettre
en cause plus tard.
Notons enfin la combinaison de différentes logiques (comme des logiques modales non monotones, etc.).
22
Chapitre 3
Un formalisme de représentation des
connaissances par des règles : Prolog
Prolog est un langage de représentation des connaissances dont la première version date de 1972 (A. Colmerauer et P. Roussel). Nous le présentons d’abord en faisant le lien avec L â O, puis présenterons sa syntaxe et un
exemple pour finir avec des considérations générales.
La référence suivante concerne une implantation particulière de Prolog et des liens vers des documents sur
Prolog :
Ç È È È
[1] SWI-Prolog. – hg Ë !ü ! . – dernière consultation : août, 2004.
3.1
Prolog est un fragment de L ö O
Les deux formules suivantes sont des formules de Prolog :
"
<@? " <X*
"
<
ã n¢a Ÿ
P
Ý nHa Ÿ§akP
(3.1)
" QT<
(3.2)
ã P=a
Q
où P et sont des constantes, n et Ÿ sont des variables et ã , et Ý sont des prédicats.
De façon plus générale, une formule de Prolog est une « clause de Horn », c’est-à-dire une formule de l’une
des deux formes suivantes :
" <
± a ² a0³0³0³ Þ
où ã est un prédicat # -aire et les ä sont soit des constantes, soit des variables
(3.3)
ã
?
*
q±
9²X³0³0R³ .´
-i
où les .ä sont de la forme (3.3)
(3.4)
Remarque 3 On définit parfois les clauses de Horn de façon syntaxiquement différentes mais sémantiquement
équivalentes : I est une formule de Prolog comme définie ci-dessus ssi il existe une clause de Horn L telle que
IM{eL 1 .
Remarque 4 Il existe d’autres types de formules dans Prolog, par exemple des formules pour des calculs arithmétiques, mais nous ne les étudierons pas ici (elles sont brièvement évoquées à la section 3.5).
1. Une clause en L j O est une formule de la forme k:‘üƒkW’¢ƒlXlXlƒknm où kpo est un littéral, c’est-à-dire une formule de la forme
‘Yu t ’u lXlYl t êwv (littéral positif) ou de la forme xhk où k est un littéral positif ( xsk est un littéral négatif). Une clause de Horn est une clause
ayant un et un seul littéral positif. Par exemple, qsr y u z v|{~} r € v€‚ r y u zDu € v est équivalent à la clause de Horn x qsr y u z v ƒƒx } r € v ƒ  r y u zDu € v .
qsr t
23
Téléchargement