Logique : le calcul des prédicats

Transcription

Logique : le calcul des prédicats
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Logique : le calcul des prédicats
Sophie Pinchinat
[email protected]
IRISA, Université de Rennes 1
UE LOG – année 2016-2017
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
1/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
1 Introduction
2 Un exemple
3 Syntaxe du calcul des prédicats
4 Sémantique du calcul des prédicats
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
2/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Motivation
Le calcul des propositions est bien trop limité pour décrire des situations réelles.
Il ne permet que de décrire des phrases dont la vérité ne dépend pas des
individus/objets comme par exemple “Il pleut”.
Il ne peut pas représenter des phrases qui mettent en jeu des individus ou des
objets comme par exemple
I
“Si x est le père de y et si z est le père de x alors z est un grand-père de y”
I
“Toute personne a un père”.
I
...
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
3/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Vue d’ensemble du calcul des prédicats
Le calcul des prédicats (ou Logique du premier ordre) permet d’exprimer de
telles relations entre objets. Il est donc plus riche que le calcul propositionnel.
Il contient :
I
des symboles de variables x, y , z, . . . qui prennent leur valeurs dans
l’ensemble des objets (ou entités) du discours.
I
des symboles de fonctions (c, f (x), g (x, y ), . . .) permettant d’opérer sur
les objets (ex. la fonction “x 7→ père de x”).
I
des symboles de relations (. . . , P(x), Q(x, y ), R(x, y , z), . . .) permettant
de relier les objets entre eux (ex. la relation binaire “être amis”).
Pour former les phrases du langage du premier ordre on utilise :
I
Les expressions basées sur les relations appliquées aux entités, ex.
Q(c, f (x)), s’évaluent à vrai ou faux (selon les interprétations).
I
Leur combinaison à l’aide des connecteurs logiques du calcul
propositionnel, mais aussi de deux autres connecteurs ∀ et ∃, appelés
quantificateurs (leur sémantique est celles nos mathématiques).
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
4/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Relation avec le calcul propositionnel
Le calcul des prédicats hérite des propriétés établies pour celui des propositions.
I
Le langage est défini inductivement.
I
Les énoncés de cette logique sont interprétés, comme ceux du calcul
propositionnels.
Remarque (Différence algorithmique importante)
On peut montrer que le calcul des prédicat est indécidable : il n’existe pas
d’algorithme permettant de répondre à la question de la validité.
Ceci tient au fait que l’ensemble des candidats modèles d’une formule du premier
ordre est en général infini.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
5/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Rappels sur les fonctions
Étant donnés un ensemble E et k ∈ IN, une fonction k-aire (ou d’arité k) sur E
est une fonction de E k (= E × E × . . . E , k fois) dans E .
Exemple
1. Soit la fonction d’arité 1 succ : IN → IN définie par succ(n) = n + 1 et la
fonction 0 d’arité zéro (pas d’argument, donc une constante).
2. Soit la fonction binaire (d’arité 2) +3 : (ZZ/3ZZ)2 → ZZ/3ZZ qui fait la
somme de deux éléments modulo 3.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
6/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Rappels sur les relations
Étant donnés un ensemble E et k ∈ IN, une relation k-aire (ou d’arité k) sur E
est un sous-ensemble de E k
Exemple
1. E = {1, 2, 3} et R est la relation binaire (d’arité 2) définie par
R = {(1, 1), (2, 2), (3, 3)} ⊆ E 2 .
2. E = IN et S est la relation binaire S = {(n, n + 1) | n ∈ IN} ⊆ E 2 .
3. E = {1, 2, 3} et R est la relation unaire (d’arité 1) définie par R = {1, 2}.
Notez que l’on a bien R ⊆ E
4. L’ensemble E 0 est un ensemble à UN élément. Par conséquent, les seules
relations d’arité 0 sur E , c-à-d. les sous-ensembles de E 0 sont soit ∅ soit
E 0 lui-même.
Remarque
Si R est une relation d’arité n, on note R(a1 , ..., an ) pour (a1 , ..., an ) ∈ R.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
7/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Valeur de vérité
Exemple
Considérons les formules suivantes :
1. ϕG : ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z)
2. ϕP : ∀x∃yP(y , x)
3. ϕC : ∀x∃yG (y , x)
4. ϕD : ∀x∀zP(z, f (x)) → G (z, x)
5. ϕF : (ϕG ∧ ϕP ) → ϕC
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
8/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Valeur de vérité
Exemple
Considérons les formules suivantes :
1. ϕG : ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z)
2. ϕP : ∀x∃yP(y , x)
3. ϕC : ∀x∃yG (y , x)
4. ϕD : ∀x∀zP(z, f (x)) → G (z, x)
5. ϕF : (ϕG ∧ ϕP ) → ϕC
Il est impossible (ou presque) de donner une valeur de vérité à ces formules, et
ce pour différentes raisons :
I
on ne sait dans quel ensemble les variables x, y , z prennent leur valeur.
I
on ne connaı̂t pas non plus la fonction f .
I
et ne connaı̂t pas non plus les relations binaires P et G .
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
8/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Valeur de vérité
Exemple
Considérons les formules suivantes :
1. ϕG : ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z)
2. ϕP : ∀x∃yP(y , x)
3. ϕC : ∀x∃yG (y , x)
4. ϕD : ∀x∀zP(z, f (x)) → G (z, x)
5. ϕF : (ϕG ∧ ϕP ) → ϕC
Il est impossible (ou presque) de donner une valeur de vérité à ces formules, et
ce pour différentes raisons :
I
on ne sait dans quel ensemble les variables x, y , z prennent leur valeur.
I
on ne connaı̂t pas non plus la fonction f .
I
et ne connaı̂t pas non plus les relations binaires P et G .
Il est donc nécessaire de choisir une interprétation pour pouvoir évaluer la
valeur de vérité d’une formule.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
8/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Interprétation 1
Les objets/individus sont les êtres humains, avec tout ce qui en découle.
I P(x, y ) signifie que “x est le père de y ”, G (x, y ) signifie que “x est un
grand-père de y ”, et f retourne la mère d’un individu.
I ϕG = ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) signifie “pour tous êtres
humains x, y , z, si x est le père de y et y est le père de z, alors x est un
grand-père de z”.
I ϕP = ∀x∃yP(y , x) signifie“pour tout individu x il existe un individu y tel
que y est le père de x” c-à-d. “tout individu a un père”.
I ϕC = ∀x∃yG (y , x) signifie “pour tout individu x il existe un individu y tel
que y est le grand père de x”, c-à-d. “tout individu a un grand-père”.
I ϕD = ∀x∀zP(z, f (x)) → G (z, x) signifie “si z est le père de la mère de x,
alors z est un grand-père de x”.
Ces quatre formules sont vraies dans l’Interprétation !. L’énoncé
ϕF = ((ϕG ∧ ϕP ) → ϕC ) est donc aussi vraie.
Remarque
Les deux formules ϕP et ϕG sont loin de modéliser toutes les propriétés des
relations P et G , respectivement. Par exemple, on n’a pas énoncé que “le père
de chaque individu est unique”, ni qu’“un individu x peut-être le grand-père d’un
autre z sans qu’il existe un individu dont x soit le père et qui soit le père de z”.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
9/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Interprétation 2
a
Les objets sont les trois sommets a, b, c du graphe
b
c
I
P décrit la relation prédécesseur, donc les couples (a, b), (b, c) et (c, a), et
G décrit la relation successeur, donc les couples (b, a), (c, b) et (a, c).
I
La fonction f s’interpréte comme a 7→ a, b 7→ b, c 7→ a.
I
ϕP = ∀x∃yP(y , x) “tout point a un prédécesseur immédiat” Elle est vraie
dans ce graphe.
I
ϕG = ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) “pour tous points x, y , z, si x
précède imméd. y et si y précède imméd. z, alors x suit imméd. z”
Elle
est vraie dans ce graphe.
I
ϕC = ∀x∃yG (y , x) “tout point a un successeur immédiat”
dans ce graphe.
I
ϕF = ((ϕP ∧ ϕG ) → ϕC ) est donc vraie dans ce graphe.
I
ϕD = ∀x∀zP(z, f (x)) → G (z, x) “pour tout z et pour tout x, si z précède
immédiatement f (x), alors z suit immédiatement x”.
Elle est fausse.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
Elle est vraie
10/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Interprétation 3
a
b
d
c
Les objets sont les quatre sommets a, b, c, d du graphe
I
P(x, y ) “x précède immédiatement y sur le graphe”.
I
G (x, y ) “x suit immédiatement y sur le graphe”.
I
ϕP = ∀x∃yP(y , x) “ tout point a un prédécesseur immédiat”.
vraie.
I
ϕG = ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) “pour tous points x, y , z, si x
précède imméd. y et si y précède imméd. z, alors x suit imméd. z”. Elle
est fausse.
I
ϕC = ∀x∃yG (y , x) “tout point a un successeur immédiat”. Elle est vraie.
Elle est
ϕF = ((ϕP ∧ ϕG ) → ϕC ) est donc vraie dans cette interprétation.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
11/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Interprétation 4
a
b
d
c
Les objets sont les quatre sommets a, b, c, d du graphe
I
P(x, y ) “x précède imméd. y ” et G (x, y ) “pour aller de x à y on
rencontre exactement un point z différent de x et de y ”.
I
ϕP = ∀x∃yP(y , x) “tout point a un prédécesseur immédiat”. Elle est vraie.
I
ϕG = ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) “pour tous points x, y , z, si x
précède imméd. y et si y précède imméd. z, alors x suit imméd. z”.Elle est
vraie.
I
ϕC = ∀x∃yG (y , x) “tout point a un successeur immédiat”. Elle est vraie.
ϕF = ((ϕP ∧ ϕG ) → ϕC ) est donc vraie dans cette interprétation.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
12/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Interprétation 5
Les objets sont les éléments de IN, les entiers naturels.
I
P(x, y ) “x = y + 1”. Ex. P(5, 4) est vraie, mais P(4, 5) est fausse.
I
G (x, y ) “x = y + 2”. Ex. G (6, 4) est vraie, mais G (4, 6) est fausse.
I
ϕP = ∀x∃yP(y , x) “pour tout x ∈ IN, il existe y ∈ IN tel que y = x + 1”.
VRAIE.
I
ϕG = ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) “pour tous x, y , z ∈ IN, si
x = y + 1 et z = y + 1 alors z = x + 2”.
VRAIE.
I
ϕC = ∀x∃yG (y , x) “pour tout x ∈ IN, il existe y ∈ IN tel que y = x + 2”.
VRAIE.
ϕF = ((ϕP ∧ ϕG ) → ϕC ) est donc vraie dans cette interprétation.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
13/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Interprétation 6
Les objets sont les éléments de IN, les entiers naturels.
I
P(x, y ) “y = x + 1”. Ex. P(5, 4) est vraie, mais P(4, 5) est fausse.
I
G (x, y ) “y = x + 2”. Ex. G (6, 4) est vraie, mais G (4, 6) est fausse.
I
ϕP “pour tout x ∈ IN, il existe un entier y tel que x = y + 1”.
I
ϕG “pour tous entiers x, y , z, si x = y + 1 et z = y + 1 alors z = x + 2”.
VRAIE.
I
ϕC “pour tout x ∈ IN, il existe z ∈ setn tel que x = z + 2”.
FAUSSE.
FAUSSE
((ϕP ∧ ϕG ) → ϕC ) est donc vraie dans cette interprétation.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
14/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Comparaison des interprétations : leurs points communs
Informellement, une interprétation est donnée par :
I
un domaine pour les objets, e.g., , l’ensemble des entiers naturels,
l’ensemble des étudiants d’une classe, l’ensemble des sommets d’un
graphe, l’ensemble des graphes, etc.,
I
des opérateurs sur le domaine pour les symboles de fonctions,
I
des relations sur les objets du domaine pour les symboles de relations.
Exercice
Trouver les symboles dans les formules de l’introduction et les opérateurs qui
leur correspondent pour chacune des interprétations. Trouver les symboles de
relations dans les formules de l’introduction et les relations qui leur correspondent
pour chacune des interprétations.
Certaines interprétations ont finies (Interprétations 2,3,4), d’autres sont infinies
(Interprétations 1,5,6).
Les formules possèdent autant d’interprétations que l’on peut imaginer. Pour
une interprétation donnée, certaines formules y sont vraies d’autres fausses.
Cependant on pourra distinguer des formules du langage qui sont vraies dans
toutes les interprétations, ce sera les validités.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
15/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Syntaxe du calcul des prédicats, mais auparavant celle des termes
Un terme décrit un objet du domaine de l’interprétation choisie.
On se fixe une signature (ensemble de symboles) F = {c, f , g , . . .} de symboles
muni d’une application arité ar : F → IN qui indique combien d’arguments de
chaque symbole.
On notera par exemple F = {c(0), f (1), g (2), . . .} pour indiquer que ar(c) = 0,
ar(f ) = 1, ar(g ) = 2, etc. Puisque l’arité de c est zéro, le symbole c ne prend
aucun argument, on dit alors que c est une constante.
Définition
Étant donnés une signature F et un ensemble Var (de variables), l’ensemble des
termes sur F et Var est le plus petit ensemble tel que :
I
x ∈ TF pour toute variable x ∈ Var
I
c ∈ TF pour tout symbole d’arité 0 (constante)
I
si ar(f ) = n et t1 , . . . , tn ∈ TF , alors f (t1 , . . . , tn ) ∈ TF .
On note TF l’ensemble de tous les termes sur F et Var .
Un terme est dit clos s’il ne contient aucune variable.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
16/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Exemple de termes
Soit F = {0(0), s(1), +(2), ∗(2)}.
Exemple
Soient x, y ∈ Var . L’expression +(∗(s(s(0)), x), s(y )) est un terme, que l’on
peut représenter par l’arbre suivant :
+
∗
s
s
x y
s
0
Il n’est pas clos. Parfois, nous noterons ABUSIVEMENT (s(s(0)) ∗ x) + s(y ))
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
17/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Langage/vocabulaire pour les énoncés
Définition
Un langage (ou vocabulaire) du premier ordre est une paire S = (F, P) où :
I
F est une signature pour les termes.
I
P est une autre signature pour les formules atomiques/prédicats.
Exemple
Le langage qu’on a envie d’utiliser pour les ensembles est celui où F =
{∅(0), ∩(2), ∪(2), C (1)} et P = {= (2), ⊆ (2)}. On pourra écrire l’énoncé
⊆ (∩(x, C (∅)), x) (en maths on écrit (x ∩ ∅C ) ⊆ x))
Exercice
Quel(s) langage(s) proposeriez-vous pour les entiers naturels ?
Exercice
Quel est le langage sur lequel reposent les énoncés ϕP , . . . de l’introduction ?
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
18/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Ne pas confondre F “fonctions” et P “relations”
Les concepts de fonctions et de relations sont très différents.
I
Les symboles de fonctions (dont les constantes) sont utilisés dans les
termes pour décrire des objets.
I
Les symboles de relations sont utilisés pour des énoncés simples entre les
termes afin de décrire leurs propriétés.
Exemple
1 + 2 est un terme (il désigne un objet) tandis que 1 + 2 ≥ 4 est une formule.
I
Sophie Pinchinat
(Sauf mention contraire) chaque langage contient le symbole de relation
binaire = et un symbole de relation ⊥, sans argument (d’arité 0) qui
représentera l’énoncé toujours faux.
Logique : le calcul des prédicats
UE LOG – année 2016-2017
19/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Les formules du calcul des prédicats
I
Étant donné un langage S = (F, P), on construit les formules de la
logique du premier ordre en utilisant les connecteurs de la logique
propositionnelle et les quantificateurs ∀ et ∃ qui combinent des formules
atomiques : ces dernières sont obtenues en appliquant un symbole de
relation à des termes.
I
On se fixe pour toute la suite un ensemble
Var = {x, x0 , x1 , . . . , y , y0 , y1 , . . . , z, z0 , z1 , . . .}
de symboles de variables.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
20/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Formules (on utilise FO pour “First Order”)
Soit S = (F, P) un langage du premier ordre.
Définition
Une formule atomique sur S est une expression de la forme R(t1 , . . . , tn ) avec
R(n) ∈ P est un sumbole de relation et t1 , t2 , . . . , tn ∈ TF sont des termes.
Définition
L’ensemble FOS des formules du premier ordre sur S (et Var ) est le plus petit
ensemble tel que :
1. toute formule atomique sur S appartient à FOS
2. si ϕ, ψ ∈ FOS sont deux formules, alors
ϕ ∧ ψ, ϕ ∨ ψ, ϕ → ψ, ¬ϕ ∈ FOS
3. si ϕ ∈ FOS et x ∈ Var , alors ∀xϕ, ∃xϕ ∈ FOS .
Exercice
Définir par induction sur ϕ ∈ FOS l’ensemble Var (ϕ) de ses variables.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
21/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Arbre d’une formule
Comme pour le calcul propositionnel, on peut voir une formule comme un arbre.
Exemple
Soit la formule
[(∃xF (x)) → (∃xK (g (x)) ∨ H(f (y , x), g (x)))] ∧ [(∃yG (x, g (y ))) ∨ F (h(y ))]
∧
→
∨
∃x
F (x)
∨
∃x
∃y
F (h(y ))
H(f (y , x), g (x)) G (x, g (y ))
K (g (x))
Remarque
Les feuilles de l’arbre sont des formules atomiques (de façon similaire au cas des
propositions pour le calcul propositionnel).
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
22/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Occurrences libres et liées d’une variable
Definition
Lorsqu’une variable x appartient à une sous-formule précédée d’un quantificateur,
∀x ou ∃x, elle est dite liée par ce quantificateur. Si une variable n’est liée par
aucun quantificateur, elle est libre.
Remarque
La distinction entre variable libre et variable liée est importante : une variable
liée ne possède pas d’identité propre et peut être remplacée par n’importe quel
autre nom de variable qui n’apparaı̂t pas dans la formule.
Exemple
On établira, comme on s’y attend, que la formule ∃x(x < y ) est équivalente à
la formule ∃z(z < y ), car on a simplement renommé la variable liée x en z.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
23/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Occurrences libres et liées d’une variable
Définition
L’ensemble des variables libres (“free variables”) FV (ϕ), et l’ensemble des variables liées (“bound variables”) BV (ϕ) d’une formule ϕ sont des sous-ensembles
de Var (ϕ) définis par induction sur ϕ :
FV (ϕ) = Var (ϕ)
I si ϕ est une formule atomique :
BV (ϕ) = ∅
FV (¬ϕ) = FV (ϕ)
BV (¬ϕ) = BV (ϕ)
FV (ϕ → ψ) = FV (ϕ ∧ ψ) = FV (ϕ ∨ ψ) = FV (ϕ) ∪ FV (ψ)
BV (ϕ → ψ) = BV (ϕ ∧ ψ) = BV (ϕ ∨ ψ) = BV (ϕ) ∪ BV (ψ)
FV (∀xϕ) = FV (∃xϕ) = FV (ϕ) \ {x}
BV (∀xϕ) = BV (∃xϕ) = BV (ϕ) ∪ {x}
I
I
I
Une formule ϕ est close si elle ne possède aucune variable libre, i.e., FV (ϕ) = ∅.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
24/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Exemple
Exemple
∧
→
∨
∨
∃x
F (x)
∃x
∃y
F (h(y ))
H(f (y , x), g (x)) G (x, g (y ))
K (g (x))
On pourra renommer les variables liées∧
→
∨
∨
∃x1
F (x1 )
∃x2
∃x3
F (h(y ))
H(f (y , x), g (x)) G (x, g (x3 ))
K (g (x2 ))
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
25/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Sémantique du calcul des prédicats
Maintenant que nous sommes familiarisés avec la syntaxe de la logique des
prédicats, nous donnons une signification aux symboles de manières à
interpréter les formules.
Soit S = (F, P) un langage du calcul des prédicats. On note Fn et Pn les
symboles de fonction et les symboles de relation d’arité n, respectivement.
On évalue les formules du calcul des prédicats sur des structures,
interprétations.
Définition
Une S-structure, ou simplement structure ou encore interprétation, M est
donnée (1) par son domaine DM , et (2) par la signification des symboles :
I
n
pour chaque f ∈ Fn , d’une fonction totale f M : DM
→ DM
I
n
pour chaque r ∈ Pn , d’une relation r M ⊆ DM
Remarque
Lorsque c ∈ F0 (constante), alors son interprétation c M est un élément de DM .
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
26/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Exemples d’interprétations
Soit le langage S = ({o(0), f (1)}, {P(2)}).
Exemple
Soit M la structure/interprétation définie par :
I
DM = IN
I
oM = 0
I
f M (n) = n + 1
I
P M = {(n, n0 ) | n ≤ n0 }
Exemple
Soit M0 la structure/interprétation définie par :
I
DM0 = {Paul, Anne, Ida}
I
o M = Paul
I
f M (Paul) = Anne, f M (Anne) = Paul, f M (Ida) = Anne, par exemple
pour “héritier”
I
P M = {(Anne, Paul), (Paul, Ida), (Anne, Ida)}, par exemple pour “est
plus âgé que”
Sophie Pinchinat
0
0
0
0
0
Logique : le calcul des prédicats
UE LOG – année 2016-2017
27/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Quelques structures importantes
Domaine
IN
IN
R
I
R
I
{0}
Sophie Pinchinat
Fonctions
0, s, +, ×
0, s, +
0, s, +, ×
0, s, +
∅
Relations
=, ≤
=, ≤
=, ≤
=, ≤
{p0 , p1 , p2 , . . .}
Logique : le calcul des prédicats
Nom
Arithmétique de Péano
Arithmétique de Presburger
Théorie des réels
Théorie additive des réels
Structure propositionnelle
UE LOG – année 2016-2017
28/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Interprétation des variables libres
On se donne un moyen de savoir à quel élément du domaine une variable
correspond.
Définition
Une valuation dans une structure M est une fonction ν : Var → DM qui associe
chaque variable à un élément du domaine.
On note ValM (ou plus simplement Val) l’ensemble des valuations dans M.
Pour ν ∈ Val, x ∈ Var et d ∈ DM , on définit :
d
si y = x
ν[x := d](y ) =
ν(y )
sinon.
Ainsi, ν[x := d] est comme ν sauf pour la variable x qui maintenant est
associée à d.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
29/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Valeur d’une formule
On se fixe un langage S = (F, P) et un ensemble de variables Var pour écrire
des formules.
On se fixe aussi une S-structure M, et ν ∈ ValM une valuation pour les
variables de Var .
Pour savoir ce que vaut la formule ∃x(P(f (x), y ) ∨ Q(g (x, y ))) dans M, il faut
savoir
1. ce que vallent les termes f (x), y , et g (x, y )
2. ce que vallent les formules atomiques P(f (x), y ) et Q(g (x, y )), dont on
déduira ce que vaut P(f (x), y ) ∨ Q(g (x, y ))
3. et enfin, ce que vaut ∃x(P(f (x), y ) ∨ Q(g (x, y )))
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
30/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Valeur d’un terme
On a fixé un langage S = (F, P) et un ensemble de variables Var , une
S-structure M, et ν ∈ ValM une valuation pour les variables de Var .
Définition
Soit t ∈ TF , sa valeur dans M pour la valuation ν est un élément du domaine
DM , noté [[ t ]]M,ν , et défini par induction sur t :
1. si t = x est une variable, alors [[ t ]]M,ν = [[ x ]]M,ν = ν(x)
2. sinon t = f (t1 , . . . , tn ), et alors
[[ t ]]M,ν = [[ f (t1 , t2 , . . . , tn ) ]]M,ν = f M ([[ t1 ]]M,ν , [[ t2 ]]M,ν , . . . , [[ tn ]]M,ν )
Remarque
Le cas d’une constante c est un cas particulier de 2. pour un symbole d’arité 0 :
[[ c ]]M,ν = c M ∈ DM
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
31/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Valeur d’une formule atomique (de la forme r (t1 , t2 , . . . , tn ))
On a fixé un langage S = (F, P) et un ensemble de variables Var , une
S-structure M, et ν ∈ ValM une valuation pour les variables de Var .
Définition
La valeur de r (t1 , t2 , . . . , tn ) dans M pour ν, notée [[ r (t1 , t2 , . . . , tn ) ]]M,ν , est
dans {faux, vrai} et est donnée par :
[[ r (t1 , t2 , . . . , tn ) ]]M,ν = vrai ssi ([[ t1 ]]M,ν , [[ t2 ]]M,ν , . . . , [[ tn ]]M,ν ) ∈ r M
Exemple
Considérons la formule atomique P(f (x), y ) que l’on évaluer dans la structure
N de domaine les entiers naturels IN, et pour laquelle f N (n) = n + 1 et P N est
la relation ≥, et pour la valuation ν définie par [x := 42, y := 3, z := . . .].
Par définition pour les formules atomiques, [[ P(f (x), y ) ]]M,ν = vrai dès lors
que (ν(f (x)), ν(y )) ∈ P N , ce qui se lit 42 + 1 ≥ 3 qui est bien vraie.
Exercice
Trouver une structure M et une valuation ν pour lesquelle [[ P(f (x), y ) ]]M,ν =
faux.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
32/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Valeur d’une formule
Maintenant que l’on connaı̂t les valeurs des formules atomiques, on peut définir
les valeurs de formules plus complexes.
Définition
Soit ϕ ∈ FO une formule non atomique. La valeur de ϕ dans M pour la valuation
ν, notée [[ ϕ ]]M,ν , est dans {faux, vrai} et est définie par (induction) :
I
[[ ϕ ∧ ψ ]]M,ν = vrai ssi [[ ϕ ]]M,ν = vrai et [[ ψ ]]M,ν = vrai
I
[[ ϕ ∨ ψ ]]M,ν = vrai ssi [[ ϕ ]]M,ν = vrai ou [[ ψ ]]M,ν = vrai
I
[[ ¬ϕ ]]M,ν = vrai ssi [[ ϕ ]]M,ν = faux
I
[[ ϕ → ψ ]]M,ν = faux ssi [[ ϕ ]]M,ν = vrai et [[ ψ ]]M,ν = faux
I
[[ ∃xϕ ]]M,ν = vrai ssi il existe d ∈ DM tel que [[ ϕ ]]M,ν[x:=d] = vrai
I
[[ ∀xϕ ]]M,ν = vrai ssi pour tout d ∈ DM , [[ ϕ ]]M,ν[x:=d] = vrai
Lorsque [[ ϕ ]]M,ν = vrai, on dit que “ϕ est vraie ...”, et on note M, ν |= ϕ.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
33/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Prenons un peu de temps pour ...
Définition
Soit ϕ ∈ FO une formule non atomique. La valeur de ϕ dans M pour la valuation
ν, notée [[ ϕ ]]M,ν , est dans {faux, vrai} et est définie par (induction) :
..
.
I
[[ ∃xϕ ]]M,ν = vrai ssi il existe d ∈ DM tel que [[ ϕ ]]M,ν[x:=d] = vrai
I
[[ ∀xϕ ]]M,ν = vrai ssi pour tout d ∈ DM , [[ ϕ ]]M,ν[x:=d] = vrai
Des exemples au tableau ...
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
34/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Remarques
I
[[ ∃xϕ ]]M,ν = vrai ssi il existe d ∈ DM tel que [[ ϕ ]]M,ν[x:=d] = vrai
I
[[ ∀xϕ ]]M,ν = vrai ssi pour tout d ∈ DM , [[ ϕ ]]M,ν[x:=d] = vrai
Remarque
On a vu que les valeurs [[ ∃xϕ ]]M,ν et [[ ∀xϕ ]]M,ν sont indépendantes de ν(x).
Plus généralement, les valeurs [[ ϕ ]]M,ν et [[ ϕ ]]M,ν ne dépendent pas des valuations des variables x ∈ BV (ϕ) (variables liées), mais de celles de variables
libres.
Remarque
Lorsque ϕ est une formule close (i.e., pas de variables libres), sa valeur [[ ϕ ]]M,ν
ne dépend pas de la valuation ν.
Lorsque ϕ est close, on note [[ ϕ ]]M sa valeur dans M, et on écrit M |= ϕ
lorsque [[ ϕ ]]M = vrai.
La notion pertinente est celle de formule close, les formules non closes ne
servent qu’à donner la sémantique.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
35/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Exemple d’application de la sémantique : Ordre des quantificateurs
Avec notre sémantique des formules, on peut montrer que l’ordre dans lequel
sont écrits certains quantificateurs est important : par exemple, les formules
∀y ∃xP(x, y ) et ∃x∀y P(x, y ) ne signifient pas la même chose puisqu’il existe
une structure dans laquelle ∀y ∃xP(x, y ) est vraie, mais ∃x∀y P(x, y ) est fausse.
On choisit la structure des entiers ordonnées N = (IN, ≥), dans laquelle P
s’interprète comme ≥.
[[ ∀y ∃xP(x, y ) ]][ N ] = vrai
ssi pour tout n ∈ IN, [[ ∃xP(x, y ) ]]N ,[y :=n] = vrai
ssi pour tout n ∈ IN, il existe m ∈ IN, [[ P(x, y ) ]]N ,[y :=n,x:=m] = vrai
ssi pour tout n ∈ IN, il existe m ∈ IN, ([[ x ]]N ,[y :=n,x:=m] , [[ y ]]N ,[y :=n,x:=m] ) ∈ P N
ssi pour tout n ∈ IN, il existe m ∈ IN, m ≥ n
c’est VRAI !
[[ ∃x∀y P(x, y ) ]][ N ] = vrai
ssi il existe m ∈ IN t.q, [[ ∀y P(x, y ) ]]N ,[x:=m] = vrai
ssi il existe m ∈ IN, pour tout n ∈ IN, [[ P(x, y ) ]]N ,[x:=m,y :=n] = vrai
ssi il existe m ∈ IN, pour tout n ∈ IN, ([[ x ]]N ,[x:=m,y :=n] , [[ y ]]N ,[x:=m,y :=n] ) ∈ P N
ssi il existe m ∈ IN, pour tout n ∈ IN, m ≥ n
c’est FAUX !
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
36/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Notions sémantiques
Comme pour le calcul propositionnel, on définit les notions de :
I
modèles d’une formule close
I
thérorème
I
validité/satisfaisabilité
I
conséquence logique
I
équivalence
I
etc.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
37/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Modèles, théorèmes, et tout et tout ...
Soit S un langage du premier ordre.
Définition
Soit M une S-structure.
I
Soit ϕ ∈ FO une formule close sur S.
La structure M est un modèle de ϕ si M |= ϕ
I
Soit Γ ∈ FO un ensemble de formules closes sur S.
La structure M est un modèle de Γ si M |= ϕ, pour tout ϕ ∈ Γ.
(c-à-d. [[ ϕ ]]= vrai).
Définition
I
Une formule close ϕ ∈ FO est insatisfaisable si elle n’a pas de modèle,
sinon elle est satisfaisable.
I
Une formule close ϕ ∈ FO sur S est valide (ou une tautologie), noté |= ϕ,
si M |= ϕ, pour toute S-structure M.
Définition
Deux formules closes ϕ et ψ de FO sont dites équivalentes (noté ϕ ≡ ψ) si pour
toute S-structure M, on a M |= ϕ ssi M |= ψ.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
38/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Equivalences classiques (1/2)
I
Loi de conversion des quantificateurs
¬∀xϕ
¬∃xϕ
I
∃x¬ϕ
∀x¬ϕ
Loi de distribution des quantificateurs
∀x(ϕ ∧ ψ)
∃x(ϕ ∨ ψ)
I
≡
≡
≡
≡
(∀xϕ ∧ ∀xψ)
(∃xϕ ∨ ∃xψ)
Lois de permutation des quantificateurs de même sorte
∀x∀y ϕ
∃x∃y ϕ
≡
≡
∀y ∀xϕ
∃y ∃xϕ
Exercice
Utiliser la sémantique de ≡ et celle des formules pour démontrer ces équivalences.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
39/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Equivalences classiques (2/2)
I
Lois de réalphabétisation (renommage) des variables. On peut toujours
renommer une variable liée et la variable du quantificateur au sein d’une
formule. Cependant, le nouveau nom ne doit pas être un nom déjà utilisé
pour une variable libre ou liée de la formule.
Exemple
Dans ∃x(∀xF (x, y ) → (G (x) ∨ q)), on peut opérer deux renommages :
∃z(∀tF (t, y ) → (G (z) ∨ q))
I
Lois de passage : si x ∈
/ FV (ψ),
∀x(ϕ ∧ ψ)
∃x(ϕ ∧ ψ)
∀x(ϕ ∨ ψ)
∃x(ϕ ∨ ψ)
∀x(ϕ → ψ)
∃x(ϕ → ψ)
∀x(ψ → ϕ)
∃x(ψ → ϕ)
Sophie Pinchinat
Logique : le calcul des prédicats
≡
≡
≡
≡
≡
≡
≡
≡
(∀xϕ) ∧ ψ
(∃xϕ) ∧ ψ
(∀xϕ) ∨ ψ
(∃xϕ) ∨ ψ
(∃xϕ) → ψ
(∀xϕ) → ψ
ψ → (∀xϕ)
ψ → (∃xϕ)
UE LOG – année 2016-2017
40/41
Introduction
Un exemple
Syntaxe du calcul des prédicats
Sémantique du calcul des prédicats
Conséquence logique
Définition
Une formule close ϕ est conséquence logique d’un ensemble de formules closes
Γ si tout modèle de Γ est un modèle de ϕ. On écrit alors Γ |= ϕ.
Une théorie est l’ensemble des conséquences logiques d’un ensemble de formules
closes.
Exemple
La théorie des groupes est l’ensemble des conséquences logiques de l’ensemble
de formules suivantes, appelées axiomes de la théorie des groupes :
Associativité
Élément neutre
Inverse
∀x∀y ∀z[(x ∗ y ) ∗ z = x ∗ (y ∗ z)]
∀x[(x ∗ e = x) ∧ (e ∗ x = x)]
∀x[(x ∗ i(x) = e) ∧ (i(x) ∗ x = e)]
(Ass)
(EN)
(Inv)
Par exemple,
{Ass, EN, Inv } |= ∀x∀y [(x ∗ y = e) → (y = i(x))]
qui exprime que l’inverse à droite de tout élément est unique.
Sophie Pinchinat
Logique : le calcul des prédicats
UE LOG – année 2016-2017
41/41