Université Montpellier II L3 2012
Logique 2
Logique 2 (notes de cours). 1
Bases de la logique des prédicats du premier ordre
Ce document est à compléter avec les exemples et exercices traités en cours et TD.
Introduction : prédicats, variables et constantes, quantificateurs
En logique des propositions, les expressions (« formules », « phrases ») sont construites à partir de
symboles propositionnels pouvant prendre les valeurs vrai ou faux. Ces énoncés élémentaires sont
non structurés. Parfois, on souhaiterait décomposer ces propositions élémentaires en faisant une
opération qui ressemble à une paramétrisation. Par exemple, au lieu d'avoir un symbole
propositionnel pour représenter "PierreEstAmiDePaul", on peut considérer que « ami » est une
relation qui porte sur deux arguments (c’est donc une relation d’arité 2) : dans le cas présent sur
deux entités identifiées « Pierre » et « Paul », et plus généralement sur deux arguments quelconques
x et y, ce que l’on note ami(x,y). Dans un tel énoncé, « ami » s'appelle un prédicat et x et y sont des
variables. Dans l’énoncé ami(Pierre, Paul), Pierre et Paul désignent des entités précises, ce sont
des constantes. Lorsqu'on interprétera de tels énoncés, les constantes et les variables auront pour
valeur des éléments d'un certain ensemble (appelé le « domaine » de l’interprétation). Dans une
interprétation donnée, ami(x, y) et ami(Pierre, Paul) pourront prendre les valeurs vrai ou faux
suivant les valeurs prises par x, y, Pierre et Paul.
La logique du premier ordre introduit deux quantificateurs qui portent sur des variables :
, le quantificateur universel (« pour tout »)
, le quantificateur existentiel (« il existe »)
Considérons par exemple l'énoncé suivant :
(1) tout chat est un animal
(2) Félix est un chat
donc Félix est un animal.
On pourra le formaliser en logique du premier ordre de la manière suivante :
(1) x (chat(x) animal(x)) (tout x qui est un chat est un animal)
(2) chat(Félix),
De (1) et (2), on peut déduire : animal(Félix)
Félix est une constante, x une variable, chat(.) et animal(.) sont des prédicats unaires.
Pour désigner des entités (ou « objets »), on dispose des constantes (« entités connues ») et des
variables (« entités inconnues »). Il existe aussi des symboles fonctionnels, qui permettent de
« calculer » des individus, mais on ne les considérera pas dans ce chapitre (notez quand même que
les constantes peuvent être vues comme des symboles de fonctions 0-aires).
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre 2
1. Syntaxe
Définition (langage du premier ordre)
Un langage du premier ordre L = ({a1, a2, ..., ak}, {p1, p2, ..., pn}) est formé :
- d'un ensemble de constantes : {a1, a2, ..., ak}
- et d'un ensemble de symboles de relation, ou prédicats : {p1, p2, ..., pn}.
A chaque prédicat pi est associé un entier 0, son arité, qui fixe son nombre d'arguments.
Remarque. Du point de vue des langages formels, les formules sont des mots construits sur
l'alphabet formé de L, d'un ensemble de variables et des autres symboles que sont les
quantificateurs (,), les connecteurs (¬, ,, …) et les parenthèses. Donc L est une partie de
l'alphabet ; toutefois l'utilisation de l'expression « langage » du premier ordre est traditionnelle en
logique.
Un terme permet de désigner une entité (un objet) :
Définition (terme)
Un terme est une variable ou une constante (et plus tard ce pourra aussi être une fonction).
Définition (formule bien formée – fbf)
Les formules bien formées, fbf, construites sur le langage du premier ordre L peuvent être définies
inductivement de la manière suivante :
(base) la base est constituée par les formules atomiques (ou atomes) : p(t1, ..., tn) p est un
prédicat n-aire et t1, ..., tn sont des termes ; parfois, on ajoute l’atome qui symbolise
« l’absurde ».
(règle de construction) si A et B sont des fbf et si x est une variable alors les expressions suivantes
sont des fbf :
¬A, (A B), [ (A B), (A B), (A B) ]
xA [ xA ]
Remarque : Les formules entre [] ci-dessus peuvent être réécrites de façon équivalente à partir de
¬A, (A B) et xA. En particulier xA se réécrit ¬x¬A.
Remarque : par la suite, on s'autorisera à ne mettre que les parenthèses utiles [comme par exemple
dans x(A(x) B(x) C(x)), (pq)r ou p(qr)]. La définition d'une fbf entraîne que les
quantificateurs ont priorité sur les connecteurs binaires.
Définition (arborescence syntaxique d'une fbf)
L'arborescence syntaxique d'une fbf f (notation : ARBO(f)) se définit inductivement de la façon
suivante :
(base) si f est un atome, ARBO(f) est une arborescence réduite à un sommet étiqueté par f
(règles)
si f = ¬A, ARBO(f) est une arborescence dont la racine est étiquetée par ¬ et a un seul fils qui est la
racine de ARBO(A)
si f = QxA, Q est un quantificateur, ARBO(f) est une arborescence dont la racine est étiquetée
par Qx et a un seul fils qui est la racine de ARBO(A)
si f = (A op B), op est un opérateur binaire, ARBO(f) est une arborescence dont la racine est
étiquetée par op et qui a deux fils : le fils gauche est la racine de ARBO(A) et le fils droit est la
racine de ARBO(B).
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre 3
Exemple : arborescence de la formule x(p(x)→∃y r(x,y))
x
!
y p(x)
r(x,y)
Remarque : par abus de langage, on parlera souvent d'arbre syntaxique (même si d'un point de vue
graphe, il s'agit bien d'une arborescence).
On peut définir diverses notions à partir de cette définition : profondeur d'une fbf, ensemble des
sous-fbf d'une fbf, etc.
Exemple (profondeur d’une fbf) :
Soit f une fbf.
(base) Si f est un atome, profondeur(f) = 0
(règles)
Si f = ¬A ou f = x A ou f = x A, profondeur(f) = 1 + profondeur(A)
Si f = (A op B) où op est l'un des connecteurs binaires,
profondeur(f) = 1 + max(profondeur(A), profondeur(B)).
Dans la fbf xA, [ou xA], x est la variable quantifiée, et A est la portée de la quantification x
[x]. Une occurrence de la variable x est liée si elle est dans la portée d'une quantification portant
sur x. Sinon, cette occurrence est libre. Une variable est libre si elle a au moins une occurrence
libre. Elle est liée si elle a au moins une occurrence liée. Dans une fbf, une même variable peut donc
être à la fois libre et liée. Toutefois, on peut toujours renommer les variables d'une formule (en
gardant une formule équivalente), de façon à ce qu'une variable ne soit pas à la fois libre et liée.
Définition (formule fermée)
Une fbf est dite fermée (ou close) lorsqu'elle n'a aucune variable libre (et pas lorsque toutes les
variables sont liées, puisqu’une variable peut être libre et liée ...).
Les formules fermées sont celles que l'on utilise pour exprimer des connaissances, lorsque l’on
modélise un problème ; il est toutefois nécessaire de considérer des formules quelconques lorsque
l’on effectue des preuves, en particulier lorsqu’on doit décomposer une formule en sous-formules :
même si la formule de départ est fermée (par exemple x p(x)), les sous-formules (par exemple
p(x)) ne le seront plus forcément.
2. Sémantique
La valeur de vérité d’une fbf (vrai ou faux) dépend de l’interprétation du langage L sur lequel elle
est construite. On peut voir une interprétation de L comme :
(1) un monde constitué d’entités (ou individus, ou objets, …) : l’ensemble des entités de ce
monde s’appelle le domaine de l’interprétation ;
(2) une mise en correspondance de L avec ce monde : les constantes de L donnent un nom à
certaines entités de ce monde (mais pas forcément à toutes) et les prédicats de L décrivent
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre 4
certaines propriétés des entités du domaine (si ce sont des prédicats unaires) ou certaines
relations entre les entités du domaine.
Il existe une infinité d’interprétations possibles de L.
Définition (Interprétation)
Soit L = (C, P) un langage du premier ordre C est l’ensemble des constantes et P est l’ensemble
des prédicats. Une interprétation I de L est constituée d'un ensemble non vide D appelé domaine et
d'une définition du sens des symboles de L sous forme d'applications dans D ou de relations sur D :
pour tout a de C, I(a) est un élément de D (il y a une application de C dans D)
pour tout p de P, d’arité non nulle, I(p) Darité(p)
Si p est d'arité 0 (p peut-être vu comme un symbole propositionnel)
I(p) est égal à vrai ou faux.
Un symbole de constante s'interprète donc comme un élément du domaine d'interprétation et un
prédicat comme une relation sur D (une "table" sur D) ayant pour arité celle du symbole : I(p) est
un sous-ensemble de D si p est d’arité 1 ; c’est un sous-ensemble de D x D si p est d’arité 2, etc.
Notez que deux constantes peuvent désigner le même élément du domaine (cet élément a alors deux
« noms » dans L), et que tous les éléments du domaine n’ont pas forcément de constante associée.
Exemple : L = (C, P) avec C = {a,b,c} et P = {F,C} F est unaire et C binaire.
" Une interprétation possible de L (I1)
Domaine D1 = {Alan, Bob, Bill, Boule}
Interprétation des constantes de L :
I1(a) = Alan I1 : a ! Alan
I1(b) = Bob b ! Bob
I1(c) = Bill c ! Bill
Interprétation des prédicats de L :
I1 (F) = {Alan, Boule}
I1(C) = {(Alan, Bill), (Bob, Bill), (Bill, Bill)}
" Une autre interprétation possible de L (I2)
Domaine D2 = N (ensemble des entiers naturels)
Interprétation des constantes de L :
I2(a) = 0 I2(b) = 1 I2(c) = 1
Interprétation des prédicats de L :
I2 (F) = {0, 2, 4, 6, …} x appartient à I2(F) si et seulement si x est pair
I2(C) = {(0,1), (1,2), (2,3), …} (x,y) appartient à I2(C) si et seulement si x a pour successeur y.
Alan
Bill
Bob
Bill
Bill
Bill
Alan
Boule
I1(F)
I1(C)
2 façons de présenter
l’interprétation des constantes
2 façons de présenter
l’interprétation des prédicats
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre 5
Etant données une fbf A sur un langage L et I une interprétation de ce langage, nous voulons définir
une application v(A, I) dans {vrai, faux} (ou {0,1} avec faux = 0 et vrai = 1) qui associera à A une
valeur de vérité pour I. Ceci se fait en utilisant l’interprétation I, le sens donné aux connecteurs
(c’est le même qu’en logique des propositions), et le sens que l'on va donner aux quantificateurs.
Si on considère la définition inductive des fbf on s'aperçoit qu’il faut savoir donner un sens à une
fbf ayant des variables libres, même si on ne veut considérer que les fbf fermées ; en effet, si A est
fermée et si, par exemple, A = x B, on ne peut plus supposer que B est fermée.
On peut faire cela en utilisant la notion d'une assignation des variables libres de la formule : étant
donné une interprétation de domaine D, une assignation des variables (libres) d'une formule A est
une application des variables (libres) de A dans D.
On suppose dans la suite que qu’une même variable n’est pas quantifiée deux fois dans la formule
(pour qu’une assignation ne donne pas deux valeurs à une même variable).
Définition (valeur de vérité d'une fbf pour une interprétation I et une assignation s)
Si I est une interprétation et s est une assignation, l’application v(A, I, s) dans {vrai, faux} est
définie de la manière suivante :
si A est un atome p(t1, t2, ..., tn), v(A, I, s) = vrai si :
il existe (d1 …dn) I(p) avec, pour tout i :
si ti est une constante, di = I(ti)
si ti est une variable, di = s(ti)
[• v(, I, s) = faux pour toute I et pour toute s]
si A = ¬B alors v(A, I, s) = NON(v(B, I, s)), la négation étant interprétée comme en logique des
propositions;
si A = (B
C) alors v(A, I, s) = ET(v(B, I, s), v(C, I, s)), la conjonction étant interprétée comme
en logique des propositions,
de même pour les autres connecteurs
si A =
x B alors v(A, I, s) = vrai si pour tout élément d de D, v(B, I, s+[x#d]) = vrai,
s+[x#d] est l'assignation obtenue à partir de s en donnant à la variable x la valeur d ;
[• si A =
x B alors v(A, I, s) = vrai si pour (au moins) un élément d de D, v(B, I, s+[x#d]) = vrai]
Si on considère le prédicat « égalité » (noté =) : v(t1=t2, I, s) est vrai si t1 et t2 sont interprétés par le
même élément de D, c’est-à-dire si d1 = d2, di est I(ti) ou s(ti) selon que ti est une constante ou
une variable.
Exemple (suite) : avec les interprétations I1 et I2 :
Formule A
v(A,I1)
v(A,I2)
x C(x,x)
vrai
faux
x (F(x) ¬C(x,x))
vrai
vrai
x ¬C(x,x)
faux
vrai
C(a,b)
faux
vrai
Compléments sur la notion d’assignation
Pour une fbf fermée A, la valeur de v(A, I, s) est indépendante de s et on la note v(A, I).
Dans le cas où A n'est pas fermée, on a les équivalences suivantes :
"il existe s tel que v(A,I,s) = vrai" ssi v(x1…xn A, I) = vrai, où les xi sont les variables libres de
A ;
"pour tout s, v(A,I,s) = vrai" ssi v(x1…xn A, I) = vrai, les xi sont les variables libres de A.
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !