Logique des pr´
edicats
2011-2012
1 Pourquoi les pr´
edicats
Limitations de la logique des propositions.
Exemple : on veut mod´
eliser le probl`
eme suivant :
Si un ´
etudiant a les UEs PROG001 et PROG002, il a le module PROG.
S’il a aussi l’UE Stage, il a le CP PROGRAMMEUR.
On peut le faire en logique des propositions :
prog001 prog002 prog
prog stage cp
Mais ce syst`
eme ne permet pas de g´
erer des informations sur plusieurs ´
etudiants.
Par exemple, si Aragorn et Bilbo sont deux ´
etudiants d’informatique, il faudrait ´
ecrire
les formules :
aragornAprog001 aragornAprog002 aragornAprog
aragornAprog aragornAstage aragornAcp
bilboAprog001 bilboAprog002 bilboAprog
bilboAprog bilboAstage bilboAcp
Pour ´
eviter de dupliquer les r`
egles pour chaque cas particulier, on introduit la notion
de variables, qui nous permettra de raisonner de mani`
ere plus g´
en´
erale :
X(prog001(X) prog002(X) prog(X))
X(prog(X) stage(X) cp(X))
On ajoute donc des arguments aux propositions. La nouvelle construction, qui est
vraie ou fausse pour certaines valeurs, est appel´
ee un pr´
edicat.
1
2 Syntaxe de la logique des pr´
edicats (sans symbole fonc-
tionnel)
Dans un premier temps, nous allons d´
ecrire un sous ensemble simplifi´
e de la lo-
gique des pr´
edicats, que nous compl`
eterons par la suite.
On d´
efinit une logique du premier ordre sans symboles fonctionnel par la donn´
ee :
d’un ensemble de de symboles de pr´
edicats P ; chaque pr´
edicat a une arit´
e, qui
est son nombre d’arguments.
d’un ensemble de constantes C ;
d’un ensemble de variables X.
On d´
efinit les formules du premier ordre pour P et C inductivement :
Base : si p/n Palors p(a1, ..., an)est une formule, pour tout aidans CX
(c’est aussi un atome). exemple : si X est une variable, et aragorn une constante, et que
prog est un pr´
edicat d’arit´
e 1, alors prog(X)et prog(aragorn) sont des formules
(et des atomes).
Cas particulier : les pr´
edicats d’arit´
e 0 correspondent aux propositions.
induction : Si A et B sont des formules et X une variable, alors
¬Aest une formule ;
(AB)est une formule ;
(AB)est une formule ;
(AB)est une formule (on peut ´
eventuellement ajouter et ) ;
XA est une formule ;
XA est une formule ;
Les parenth`
eses servent `
a´
eviter les ambigu¨
ıt´
es.
fermeture : les seules formules du premier ordre sur P et C sans symboles fonc-
tionnels sont celles obtenues par induction.
Grammaire formelle (en utilisant les DCG) :
/*grammaire de la logique des pr´
edicats en DCG */
terme --> foncteur,"(",termes, ")".
terme --> constante.
terme --> variable.
termes --> terme.
termes --> terme, ",", termes.
atome --> predicat, "(", termes, ")".
formule --> atome.
formule --> "non", esp, formule.
formule --> "(", formule, esp, "ou", esp, formule, ")".
formule --> "(", formule, esp, "et", esp, formule, ")".
formule --> "(", formule, esp, "->", esp, formule, ")".
formule --> "pourtout", esp, variable, esp, formule.
2
formule --> "existe", esp, variable, esp, formule.
esp --> " ".
esp --> " ", esp.
/*Lexique */
non --> "non".
foncteur --> "fonc".
foncteur --> "f".
constante --> "a".
constante --> "b".
constante --> "c".
variable --> "x".
variable --> "y".
variable --> "z".
predicat --> "p".
3 Quantification et variables
Xp(X):pour tout X, p(X) , quantification universelle.
Xp(X):il existe un X (au moins) pour lequel p(X) , quantification existen-
tielle.
3.1 Quelques particularit´
es des quantificateurs
Dans une quantification, XA, la formule Aest dite dans la port´
ee de la quanti-
fication. En effet, si on ´
ecrit (p(X)∧ ∀Xq(X)), le premier X n’est pas concern´
e
par la quantification, et le second, si. Les deux X sont donc `
a consid´
erer comme
des variables diff´
erentes.
¬(XA(X)) ´
equivaut `
aX(¬A(X))
¬(XA(X)) ´
equivaut `
aX(¬A(X))
3.2 Variables quantifi´
ees, li´
ees et libres
Une variable est quantifi´
ee quand elle apparaˆ
ıt juste derri`
ere un quantificateur.
Par exemple, dans Xp(X), le premier X est dit quantifi´
e, le second non.
une variable est dite li´
ee quand elle est dans la port´
ee d’une quantification. Dans
la formule pr´
ec´
edente, X est li´
ee.
une variable X est libre si elle n’est dans la port´
ee d’aucune quantification la
concernant. Par exemple, dans XY q(X, Y, Z), X et Y sont li´
ees, et Z est
libre.
Une formule est dite ferm´
ee (ou close) ssi elle n’a pas de variable libre. Un terme
est dit clos s’il ne contient pas de variable.
Une formule est terminale (grounded en anglais) si elle ne contient pas de variable.
3
3.3 Notion d’ordre
La notion d’ordre explique sur quoi portent les quantifications, et donc quelles sont
les variables possibles. Dans la logique du premier ordre, elles portent uniquement sur
les termes. Dans la logique du second ordre, les quantifications peuvent aussi porter
sur les pr´
edicats.
Exemple de formule du second ordre : PY P (Y)
4 S´
emantique logique
Comme pour la logique des proposition, un langage du premier ordre peut se voir
associer des interpr´
etations. Certaines propri´
et´
es d´
ependront de l’interpr´
etation choisie,
d’autre seront vraie dans toutes les interpr´
etations.
Une interpr´
etation donne un sens aux constantes et aux pr´
edicats. Les constantes
sont associ´
ees `
a des valeurs prises dans un ensemble Dqui d´
ependra de l’interpr´
etation,
et les pr´
edicats prendront les valeurs vrai ou faux . Comme les pr´
edicats prennent
des arguments, on consid`
erera un pr´
edicat p/n comme une fonction de Dndans {vrai,faux}.
Exemples :
Soit le langage du premier ordre de signature :
P=r/1
F=a, b
Voici quelques interpr´
etations possibles :
D={1,2}et j’interpr`
ete a comme 1, et b comme 2. En interpr´
etant
r(X)comme signifiant mon argument est pair, on voir que r(a)s’interpr`
ete
comme faux et r(b)comme vrai .
D={java,lisp}, avec ainterpr´
et´
e comme java et bcomme lisp , et r/1
comme signifiant le langage est un langage imp´
eratif . On aurait alors r(a)
faux et r(b)vrai.
Cependant, comme avec les propositions, certaines propri´
et´
es seront vraies dans
toutes les interpr´
etations : on aura toujours r(a)∨ ¬r(a), par exemple.
Pour interpr´
eter correctement une formule comme r(X), o`
u X est une variable, il
faut, de plus, connaˆ
ıtre la valeur de X. On interpr`
etera donc une formule par rapport `
a
une interpr´
etation et `
a une assignation donn´
ee.
L’interpr´
etation sera d´
efinie inductivement sur les formules : on d´
efinira d’abord
la s´
emantique des termes, puis celle des atome et des expressions complexes. Nous
donnerons une description formelle de la s´
emantique quand nous aurons introduit
l’int´
egralit´
e de la logique des pr´
edicats.
5 Exemples et exercices
Nous allons voir des mod´
elisations qui permettent de g´
erer des bases de donn´
ees
d´
eductives (datalog).
On veut mod´
eliser `
a partir de la logique des pr´
edicats l’organisation des cours dans
un iut.
On a, dans une base de donn´
ees, les tables suivantes :
4
Enseignant
id nom pr´
enom
01 Baggins Bilbo
02 Baggins Frodo
03 Gamgee Samwise
Etudiant
id Nom Pr´
enom Classe
01 Turing Alan I2
02 Lovelace Ada I2
03 Babbage Charles I2
04 Meyer Bertrand I1
05 Wirth Niklaus I1
Module
ID-mod Intitule Classe id-prof
01 Math I1 01
02 Math I2 01
03 Logique I2 03
04 Programmation I1 03
05 Programmation I2 02
On va interpr´
eter chacune de ces tables comme un pr´
edicat. On a ainsi le pr´
edicat
enseignant/3, tel que enseignant(1,Baggins,Frodo) est vrai (etc...).
´
Ecrire une formule avec une variable libre X, qui sera vraie uniquement si...
X est le nom d’un enseignant ;
X est le nom d’un enseignant de programmation ;
X est le nom d’un ´
etudiant qui suit au moins un cours.
X est l’intitul´
e d’une mati`
ere suivie par tous les ´
etudiants
Exprimer en logique du premier ordre :
il n’y a pas d’enseignant qui enseigne la programmation (on peut aussi ´
ecrire des
formules fausses !)
tous les ´
etudiants suivent au moins un cours.
il existe un enseignant qui donne des cours `
a tous les ´
etudiants.
6 Logique des pr´
edicats du premier ordre
En fait, les pr´
edicats peuvent avoir pour argument non seulement des variables
et des constantes, mais des structures cr´
e´
ees `
a l’aide de symboles fonctionnels. Ces
symboles vont servir `
a mod´
eliser non seulement des fonctions au sens classique du
terme, mais aussi `
a repr´
esenter des structures comme par exemple les listes. Il ne faut
pas les confondre avec les pr´
edicats !
exemple : dans XestPair(plus(X, X)) est une formule dans laquelle estPair/1
est un pr´
edicat d’arit´
e 1, et plus/2 est un symbole fonctionnel d’arit´
e 2. Le premier,
quand on d´
efinira une s´
emantique, s’interpr`
etera comme vrai ou faux, et le second sera
compris comme une valeur.
On consid`
ere g´
en´
eralement les constantes comme ´
etant des symboles fonctionnels
d’arit´
e 0.
5
1 / 10 100%