la logique des pr´edicats - ulb.ac.be · info-f-302, cours d’informatique fondamentale logique...

14
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´ edicats La Logique des Pr´ edicats ou logique du premier ordre INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´ edicats Introduction 272 Introduction Les situations suivantes ne sont pas “mod´ elisables” en logique propositionnelle : I certains ´ etudiants assistent ` a tous les cours ; I aucun ´ etudiant n’assiste ` a un cours non int´ eressant ; I dans toute salle d’examen, il y a un ´ etudiant qui, s’il ´ echoue, alors tout le monde ´ echoue. INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´ edicats Introduction 273 Introduction Ce qui manque ` a la logique propositionnelle, c’est de pouvoir parler d’objets, de propri´ et´ es d’objets et de mettre en relation des objets. Par exemple : I tel cours est int´ eressant ; I tel ´ etudiant assiste au cours de logique. INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´ edicats Introduction 274 Introduction La logique propositionnelle ne permet pas de quantifier sur les objets. On ne peut pas par exemple exprimer : I tous les cours sont int´ eressants ; I il existe des cours int´ eressants. La logique du premier ordre nous permettra de mod´ eliser ces situations. Par exemple, l’´ enonc´ e “tous les cours sont int´ eressants” sera mod´ elis´ e par : 8x : Cours(x ) ! Interessant(x )

Upload: duongnhi

Post on 27-Oct-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

La Logique des Predicatsou logique du premier ordre

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Introduction

272 Introduction

Les situations suivantes ne sont pas “modelisables” en logiquepropositionnelle :

I certains etudiants assistent a tous les cours ;

I aucun etudiant n’assiste a un cours non interessant ;

I dans toute salle d’examen, il y a un etudiant qui, s’il echoue, alorstout le monde echoue.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Introduction

273 Introduction

Ce qui manque a la logique propositionnelle, c’est de pouvoir parlerd’objets, de proprietes d’objets et de mettre en relation des objets. Parexemple :

I tel cours est interessant ;

I tel etudiant assiste au cours de logique.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Introduction

274 Introduction

La logique propositionnelle ne permet pas de quantifier sur les objets. Onne peut pas par exemple exprimer :

I tous les cours sont interessants ;

I il existe des cours interessants.

La logique du premier ordre nous permettra de modeliser ces situations.Par exemple, l’enonce “tous les cours sont interessants” sera modelisepar :

8x : Cours(x) ! Interessant(x)

Page 2: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Introduction

275 Plan

1. Syntaxe des formules du premier ordre

I construction des termesI construction des formulesI variables libres, variables liees

2. Semantique

I structures et langagesI structures et satisfaction des formulesI formules valides, formules equivalentesI substitutionI modelisation en logique premier ordre

3. Formes prenexes et formes de Skolem

4. Procedure de resolution pour le premier ordre

I mise sous forme de clausesI modeles de HerbrandI unificationI methode de resolution

5. Deduction naturelle pour le premier ordre (peut-etre)

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

276 Langages du premier ordre

I on parle ici de langages car les objets syntaxiques qui seront a labase de la construction des formules sont determines par desvocabulaires qu’on fixera (symboles de relations, de fonctions, ...). Ilexistera donc une grande variete de langages du premier ordre selonle vocabulaire choisi.

I L’expression “premier ordre” di↵erencie ces langages des langages“d’ordre superieur”, dans lesquels il est possible de quantifier surd’autres objets que les variables (par ex. sur les fonctions, predicats,...)

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

277 Des exemples de formules

I 8x , p(x , x)

I 8x8y , p(x , y) ! p(y , x)

I 8x8y , f (x) = f (y) ! x = y

I 8x , [(p(x) ! ¬p(S(x))) ^ (¬p(x) ! p(S(x))]

I 9x8y , ¬(S(y) = x)

I 8y , ¬(S(y) = c)

I 8x8y , [f (x , y) = f (y , x) ^ f (x , S(y)) = S(f (x , y)) ^ f (x , c) = x ]

Les ingredients pour construire les formules sont : connecteurs Booleens,quantificateurs, symboles de relations, de fonctions, constantes, ettermes.Pour satisfaire une formule, il faudra definir une interpretation dessymboles (relations, fonctions, constantes) dans un domaine.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

277 Des exemples de formules

I 8x , p(x , x)

I 8x8y , p(x , y) ! p(y , x)

I 8x8y , f (x) = f (y) ! x = y

I 8x , [(p(x) ! ¬p(S(x))) ^ (¬p(x) ! p(S(x))]

I 9x8y , ¬(S(y) = x)

I 8y , ¬(S(y) = c)

I 8x8y , [f (x , y) = f (y , x) ^ f (x , S(y)) = S(f (x , y)) ^ f (x , c) = x ]

Les ingredients pour construire les formules sont : connecteurs Booleens,quantificateurs, symboles de relations, de fonctions, constantes, ettermes.Pour satisfaire une formule, il faudra definir une interpretation dessymboles (relations, fonctions, constantes) dans un domaine.

Page 3: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

277 Des exemples de formules

I 8x , p(x , x)

I 8x8y , p(x , y) ! p(y , x)

I 8x8y , f (x) = f (y) ! x = y

I 8x , [(p(x) ! ¬p(S(x))) ^ (¬p(x) ! p(S(x))]

I 9x8y , ¬(S(y) = x)

I 8y , ¬(S(y) = c)

I 8x8y , [f (x , y) = f (y , x) ^ f (x , S(y)) = S(f (x , y)) ^ f (x , c) = x ]

Les ingredients pour construire les formules sont : connecteurs Booleens,quantificateurs, symboles de relations, de fonctions, constantes, ettermes.Pour satisfaire une formule, il faudra definir une interpretation dessymboles (relations, fonctions, constantes) dans un domaine.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

277 Des exemples de formules

I 8x , p(x , x)

I 8x8y , p(x , y) ! p(y , x)

I 8x8y , f (x) = f (y) ! x = y

I 8x , [(p(x) ! ¬p(S(x))) ^ (¬p(x) ! p(S(x))]

I 9x8y , ¬(S(y) = x)

I 8y , ¬(S(y) = c)

I 8x8y , [f (x , y) = f (y , x) ^ f (x , S(y)) = S(f (x , y)) ^ f (x , c) = x ]

Les ingredients pour construire les formules sont : connecteurs Booleens,quantificateurs, symboles de relations, de fonctions, constantes, ettermes.Pour satisfaire une formule, il faudra definir une interpretation dessymboles (relations, fonctions, constantes) dans un domaine.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

277 Des exemples de formules

I 8x , p(x , x)

I 8x8y , p(x , y) ! p(y , x)

I 8x8y , f (x) = f (y) ! x = y

I 8x , [(p(x) ! ¬p(S(x))) ^ (¬p(x) ! p(S(x))]

I 9x8y , ¬(S(y) = x)

I 8y , ¬(S(y) = c)

I 8x8y , [f (x , y) = f (y , x) ^ f (x , S(y)) = S(f (x , y)) ^ f (x , c) = x ]

Les ingredients pour construire les formules sont : connecteurs Booleens,quantificateurs, symboles de relations, de fonctions, constantes, ettermes.Pour satisfaire une formule, il faudra definir une interpretation dessymboles (relations, fonctions, constantes) dans un domaine.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

277 Des exemples de formules

I 8x , p(x , x)

I 8x8y , p(x , y) ! p(y , x)

I 8x8y , f (x) = f (y) ! x = y

I 8x , [(p(x) ! ¬p(S(x))) ^ (¬p(x) ! p(S(x))]

I 9x8y , ¬(S(y) = x)

I 8y , ¬(S(y) = c)

I 8x8y , [f (x , y) = f (y , x) ^ f (x , S(y)) = S(f (x , y)) ^ f (x , c) = x ]

Les ingredients pour construire les formules sont : connecteurs Booleens,quantificateurs, symboles de relations, de fonctions, constantes, ettermes.Pour satisfaire une formule, il faudra definir une interpretation dessymboles (relations, fonctions, constantes) dans un domaine.

Page 4: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

277 Des exemples de formules

I 8x , p(x , x)

I 8x8y , p(x , y) ! p(y , x)

I 8x8y , f (x) = f (y) ! x = y

I 8x , [(p(x) ! ¬p(S(x))) ^ (¬p(x) ! p(S(x))]

I 9x8y , ¬(S(y) = x)

I 8y , ¬(S(y) = c)

I 8x8y , [f (x , y) = f (y , x) ^ f (x , S(y)) = S(f (x , y)) ^ f (x , c) = x ]

Les ingredients pour construire les formules sont : connecteurs Booleens,quantificateurs, symboles de relations, de fonctions, constantes, ettermes.Pour satisfaire une formule, il faudra definir une interpretation dessymboles (relations, fonctions, constantes) dans un domaine.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

277 Des exemples de formules

I 8x , p(x , x)

I 8x8y , p(x , y) ! p(y , x)

I 8x8y , f (x) = f (y) ! x = y

I 8x , [(p(x) ! ¬p(S(x))) ^ (¬p(x) ! p(S(x))]

I 9x8y , ¬(S(y) = x)

I 8y , ¬(S(y) = c)

I 8x8y , [f (x , y) = f (y , x) ^ f (x , S(y)) = S(f (x , y)) ^ f (x , c) = x ]

Les ingredients pour construire les formules sont : connecteurs Booleens,quantificateurs, symboles de relations, de fonctions, constantes, ettermes.Pour satisfaire une formule, il faudra definir une interpretation dessymboles (relations, fonctions, constantes) dans un domaine.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

278 Langages du premier ordre : alphabet

L’alphabet d’un langage du premier ordre comporte d’abord les symbolessuivants qui sont communs a tous ces langages :

I les connecteurs ¬,^,_,!,$ ;

I les parentheses (, ) ;

I le quantificateurs universel 8 et le quantificateur existentiel 9 ;

I un ensemble infini V de symboles de variables x , y , z , ....

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

279 Langages du premier ordre : alphabet

Un langage L de la logique du premier ordre est caracterise par :

I des symboles de relations ou predicats , notes p, q, r , s... ;

I des symboles de fonctions , notes f , g , h, ... ;

I des symboles de constantes , notes c , d , e, ...

A chaque predicat p, respectivement fonction f , on associe un entierstrictement positif appele l’arite de p, respectivement de f , c’est-a-dire lenombre d’arguments de p, respectivement f . On notera parfois p|n ou f |npour signifier que p (resp. f ) est un symbole de relation (resp. defonction) d’arite n.

On utilise le predicat “=” pour denoter l’egalite. Si “=” fait partie duvocabulaire du langage L, on dit que L est egalitaire .

Page 5: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

279 Langages du premier ordre : alphabet

Un langage L de la logique du premier ordre est caracterise par :

I des symboles de relations ou predicats , notes p, q, r , s... ;

I des symboles de fonctions , notes f , g , h, ... ;

I des symboles de constantes , notes c , d , e, ...

A chaque predicat p, respectivement fonction f , on associe un entierstrictement positif appele l’arite de p, respectivement de f , c’est-a-dire lenombre d’arguments de p, respectivement f . On notera parfois p|n ou f |npour signifier que p (resp. f ) est un symbole de relation (resp. defonction) d’arite n.On utilise le predicat “=” pour denoter l’egalite. Si “=” fait partie duvocabulaire du langage L, on dit que L est egalitaire .

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

280 Langages du premier ordre : alphabet

Exemples de langages :

I L1 = {r |1, c} contient un predicat unaire r et une constante c ;

I L2 = {r |2, f |1, g |2, h|2, c , d} contient un predicat binaire r , unefonction unaire f , deux symboles de fonctions binaires g et h, etdeux constantes c et d .

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

281 Langages du premier ordre : construction des termes

L’ensemble des termes d’un langage L est le plus petit ensemble quicontient les symboles de constantes et de variables et qui est clos parapplication des fonctions.L’ensemble des termes, note T , est le plus petit ensemble satisfaisant :

1. tout symbole de constante ou variable est un terme ;

2. si f est un symbole de fonction d’arite n et t1, t2, . . . , tn sont destermes alors f (t1, t2, . . . , tn) est un terme.

Remarque : les predicats ne fournissent pas des termes ; ils serviront pourconstruire les formules.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

282 Langages du premier ordre : construction des termes

Exemples :

I les seuls termes du langage L1 sont la constante c et les variables ;I les expressions suivantes sont des termes du langage L2 :

I f (c) ;I f (h(f (c), d)) ;I f (y) ;I f (h(f (x), f (d))).

Un terme est clos s’il est sans variable. Par exemple f (c) est clos.

Page 6: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

283 Langages du premier ordre : construction des formules

L’ensemble des formules atomiques d’un langage L est l’ensemble desformules de la forme :

I p(t1, t2, . . . , tn) ou p est un predicat d’arite n et t1, t2, . . . , tn sontdes termes du langage L ;

I t1 = t2 si L est egalitaire et t1, t2 sont des termes du langage L.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

284 Langages du premier ordre : construction des formules

DefinitionL’ensemble des formules du langage L , que l’on designe par F(L), estdefini par la grammaire suivante :

� ::= p(t1, . . . , tn) | �^� | �_� | ¬� | �! � | �$ � | 9x ·� | 8x ·� | (�)

I t1, . . . , tn sont des termes

I p est un symbole de relation

I 9x est appele quantificateur existentiel

I 8x est appele quantificateur universel

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

285 Langages du premier ordre : exemples de formules

La formule r(c) _ ¬9x · r(x) est une formule du langage L1.Exemples de formules du langage L2 :

I 8x · 9y(g(x , y) = c ^ g(y , x) = c)

I 8x · ¬(f (x) = c)

Exemples de formules du langage L3 = {p} ou p est un symbole depredicat binaire :

I 8x · 8y · (p(x , y) ! p(y , x))

I 8x · p(x , x)I 8x · 8y · (p(x , y) _ p(y , x))

I 8x · 8y · 8z · (p(x , y) ^ p(y , z) ! p(x , z))

I Comment exprimer que p doit etre interpretee par une fonction ?

I 8x · 8y · 8z · (p(x , y)^ p(x , z) ! y = z), mais L3 doit etre egalitaire.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

285 Langages du premier ordre : exemples de formules

La formule r(c) _ ¬9x · r(x) est une formule du langage L1.Exemples de formules du langage L2 :

I 8x · 9y(g(x , y) = c ^ g(y , x) = c)

I 8x · ¬(f (x) = c)

Exemples de formules du langage L3 = {p} ou p est un symbole depredicat binaire :

I 8x · 8y · (p(x , y) ! p(y , x))

I 8x · p(x , x)I 8x · 8y · (p(x , y) _ p(y , x))

I 8x · 8y · 8z · (p(x , y) ^ p(y , z) ! p(x , z))

I Comment exprimer que p doit etre interpretee par une fonction ?

I 8x · 8y · 8z · (p(x , y)^ p(x , z) ! y = z), mais L3 doit etre egalitaire.

Page 7: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

286 Langages du premier ordre : regles de precedence

I pour les connecteurs Booleens, on garde les memes regles deprecedence que dans la logique propositionnelle

I les quantificateurs ont la meme priorite que la negation

Exemple :

I 8x · ¬p(x , y) _ p(y , x) ⌘ (8x · ¬(p(x , y))) _ p(y , x)

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

287 Langages du premier ordre : decomposition d’une formule

Avec ces regles de precedence, toute formule d’un langage du premierordre se decompose de maniere unique sous l’une, et une seule, desformes suivantes :

I une formule atomique,

I ¬�, ou � est une formule,

I � ^ , � _ , �! , �$ ou � et sont des formules,

I 8x · � ou 9x · � ou � est une formule et x est une variable.

Une formule � est une sous-formule de si � apparaıt dans ladecomposition de .

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

288 Langages du premier ordre : variables libres et liees

Une occurrence d’une variable dans une formule est un couple constituede cette variable et d’une place e↵ective, c’est-a-dire qui ne suit pas unquantificateur.Par exemple, dans la formule

r(x , z) ! 8z · (r(y , z) _ y = z)

la variable x possede une occurrence, la variable y deux et la variable ztrois.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

289 Langages du premier ordre : variables libres et liees

Definition

I Une occurrence d’une variable x dans une formule � est uneoccurrence libre si elle ne se trouve dans aucune sous-formule de �,qui commence par une quantification 8x ou 9x .

I Dans le cas contraire, l’occurrence est dite liee.

I Une variable est libre dans une formule si elle a au moins uneoccurrence libre dans cette formule.

I Une formule close est une formule sans variable libre.

Exemples :

I dans 9x · · · p(x , y), l’occurrence de x est liee et celle de y est libre

I dans r(x , z) ! 8z · (r(y , z) _ y = z), la premiere occurrence de zest libre et les deux suivantes sont liees

On note souvent �(x1, . . . , xn) pour indiquer que � possede exactementx1, . . . , xn comme variables libres.

Page 8: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

289 Langages du premier ordre : variables libres et liees

Definition

I Une occurrence d’une variable x dans une formule � est uneoccurrence libre si elle ne se trouve dans aucune sous-formule de �,qui commence par une quantification 8x ou 9x .

I Dans le cas contraire, l’occurrence est dite liee.

I Une variable est libre dans une formule si elle a au moins uneoccurrence libre dans cette formule.

I Une formule close est une formule sans variable libre.

Exemples :

I dans 9x · · · p(x , y), l’occurrence de x est liee et celle de y est libre

I dans r(x , z) ! 8z · (r(y , z) _ y = z), la premiere occurrence de zest libre et les deux suivantes sont liees

On note souvent �(x1, . . . , xn) pour indiquer que � possede exactementx1, . . . , xn comme variables libres.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Syntaxe

289 Langages du premier ordre : variables libres et liees

Definition

I Une occurrence d’une variable x dans une formule � est uneoccurrence libre si elle ne se trouve dans aucune sous-formule de �,qui commence par une quantification 8x ou 9x .

I Dans le cas contraire, l’occurrence est dite liee.

I Une variable est libre dans une formule si elle a au moins uneoccurrence libre dans cette formule.

I Une formule close est une formule sans variable libre.

Exemples :

I dans 9x · · · p(x , y), l’occurrence de x est liee et celle de y est libre

I dans r(x , z) ! 8z · (r(y , z) _ y = z), la premiere occurrence de zest libre et les deux suivantes sont liees

On note souvent �(x1, . . . , xn) pour indiquer que � possede exactementx1, . . . , xn comme variables libres.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

290 Structures et langages

I On va interpreter les formules dans des structures.

I Une structure M pour un langage L se compose d’un ensemble nonvide M, appele le domaine et d’une interpretation des symboles depredicats par des relations sur M, des symboles de fonctions par desfonctions de M, et des constantes par des elements de M.

I Plus precisement, une structure se aussi composee :I d’un sous-ensemble de Mn, note rM, pour chaque symbole de

predicat r d’arite n dans L ;I d’une fonction de Mm dans M, notee f M, pour chaque symbole de

fonction f d’arite m dans L ;I d’un element de M, note cM, pour chaque symbole de constante c

dans L.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

291 Structures et langages : Exemples

I Un ensemble D muni d’une relation unaire E et d’un elementdistingue a est une structure pour le langage L1 = {r , c}, notee(D,E , a).

I On peut egalement donner un exemple plus concret d’interpretationpour le langage L1 = {r , c} en prenant l’ensemble des nombresnaturels comme domaine d’interpretation, l’ensemble des nombrespremiers pour interpreter le predicat r et le nombre 2 pourinterpreter la constante c .

Page 9: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

292 Structures et langages : Exemples

L’ensemble des reels RR permet de construire une structure pourL2 = {r , f , g , h, c , d} de la facon suivante :

I on interprete le predicat r comme l’ordre sur les reels ;

I on interprete f comme la fonction +1, g comme +, et h comme ⇥ ;

I on interprete les constantes c et d comme 0 et 1.

On note cette structure

M2 = (RR ,,+1,+,⇥, 0, 1)

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

293 Structures et satisfaction des formules

Etant donne un ensemble de variables V et un domaine M, une valuationpour les variables de V dans M est une fonction v : V ! M qui attribuea chaque variable x 2 V, une valeur v(x) 2 M.Etant donnees une structure M et une valuation v pour V, on definitinductivement la valeur d’un terme t (dont les variables sont dans V),que l’on note tM,v , de la facon suivante :

I si t est une constante c , alors tM,v est cM ;

I si t est la variable x alors tM,v est v(x) ;

I si t est de la forme f (t1, t2, . . . , tn) et si tM,vi est bi alors

tM,v = f M(b1, b2, . . . , bn) ;

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

294 Structures et satisfaction des formules : exemple

Soit le langage L2 = {r , f , g , h, c , d} et M3 la structure(NN,,+1,+,⇥, 0, 1), ou NN est l’ensemble des entiers positifs (nombresnaturels). La valeur du terme

t1 ⌘ g(y , h(c , x))

pour une valuation v telle que v(x) = 3, v(y) = 4, v(z) = 6 est :

tM3,v1 = 4 + (0⇥ 3) = 4

La valeur du termet2 ⌘ f (g(d , h(y , z)))

est :

tM3,v2 = (1 + (4⇥ 6)) + 1 = 26

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

294 Structures et satisfaction des formules : exemple

Soit le langage L2 = {r , f , g , h, c , d} et M3 la structure(NN,,+1,+,⇥, 0, 1), ou NN est l’ensemble des entiers positifs (nombresnaturels). La valeur du terme

t1 ⌘ g(y , h(c , x))

pour une valuation v telle que v(x) = 3, v(y) = 4, v(z) = 6 est :

tM3,v1 = 4 + (0⇥ 3) = 4

La valeur du termet2 ⌘ f (g(d , h(y , z)))

est :

tM3,v2 = (1 + (4⇥ 6)) + 1 = 26

Page 10: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

294 Structures et satisfaction des formules : exemple

Soit le langage L2 = {r , f , g , h, c , d} et M3 la structure(NN,,+1,+,⇥, 0, 1), ou NN est l’ensemble des entiers positifs (nombresnaturels). La valeur du terme

t1 ⌘ g(y , h(c , x))

pour une valuation v telle que v(x) = 3, v(y) = 4, v(z) = 6 est :

tM3,v1 = 4 + (0⇥ 3) = 4

La valeur du termet2 ⌘ f (g(d , h(y , z)))

est :

tM3,v2 = (1 + (4⇥ 6)) + 1 = 26

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

295 Structures et satisfaction des formules

Une formule � construite sur un langage L est satisfaite dans unestructure M et pour une valuation v donnant une valeur aux variables del’ensemble V, note M, v |=�, si et seulement si :

I si L est egalitaire et � ⌘ t1 = t2 alors � est vrai ssi tM,v1 = tM,v

2 ;

I si � ⌘ r(t1, t2, . . . , tn) et tM,vi = bi pour i = 1, 2, . . . , n, alors � est

vraie ssi (b1, b2, . . . , bn) 2 rM ;

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

296 Structures et satisfaction des formules

I si � ⌘ ¬ 1, � ⌘ 1 _ 2, � ⌘ 1 ^ 2, � ⌘ 1 ! 2, � ⌘ 1 $ 2

alors la valeur de � est calculee a partir des valeurs de 1 et 2

comme dans le cas propositionnel ;

I si � ⌘ 9x · , alors � est vraie ssi il existe une valuation v 0 et unevaleur u 2 M telles que

⇢v 0(y) = v(y) si y 6⌘ xv 0(y) = u si y ⌘ x

et est vraie dans (M, v 0), c’est-a-dire M, v 0|= ;

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

297 Structures et satisfaction des formules

I si � ⌘ 8x · , alors � est vraie ssi pour toute valuation v 0 et valeuru 2 M telles que

⇢v 0(y) = v(y) si y 6⌘ xv 0(y) = u si y ⌘ x

est vraie dans (M, v 0) ;

La valeur d’une formule � dans une structure M est l’ensemble W desvaluations telles que pour toute valuation v 2 W, M, v |=�.

Page 11: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

298 Structures et satisfaction des formules

Notons que, si � est une formule close, alors sa valeur de verite dans uncouple (M, v), ne depend pas de v .Dans le cas ou une formule close � est vraie dans une structure M, ceque l’on note,

M|=�

On dit que M est un modele pour �.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

299 Structures et satisfaction des formules : exemplesI La structure (D,R , a) du langage L1 = {r , c} est un modele de la

formule

8x · 8y · (r(x , y) ! r(y , x))

ssi la relation R est symetrique.I La formule close suivante

8x · r(x , x)^8x · 8y · (r(x , y) ! r(y , x))^8x · 8y · 8z · (r(x , y) ^ r(y , z) ! r(x , z))

exprime que si une structure (D,R , a) est un modele de la formule,alors R est une relation d’equivalence.

I la formule 8y · r(x , y) est vraie dans la structure(NN,,+1,+,⇥, 0, 1) et la valuation v ssi v(x) = 0 (Rappel : r estinterprete par )

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

300 Structures et satisfaction des formules : exemples

I la formule 9x · 8y · r(x , y) est vraie dans la structure(NN,,+1,+,⇥, 0, 1) ;

I la formule close

8x · 8z · 9y · (x = c _ g(h(x , y), z) = c)

du langage L2 est vraie dans la structure (RR ,,+1,+,⇥, 0, 1) etfausse dans la structure (NN,,+1,+,⇥, 0, 1).

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

301 Formules valides, formules equivalentes

Soit �(x1, x2, . . . , xn) une formule du premier ordre avec les variableslibres x1, x2, . . . , xn. On appelle cloture universelle de � la formule

8x1 · 8x2 · . . . 8xn · �(x1, x2, . . . , xn)

Soit L un langage du premier ordre, on definit les notions suivantes :

I une structure M satisfait une formule

�(x1, x2, . . . , xn)

si elle satisfait la cloture universelle de � ;

I une formule � est valide si elle est satisfaite par toutes les structuresdu langage L ;

I deux formules � et sont equivalentes si, pour toute structure Met pour toute valuation v , on a (M, v)|=� ssi (M, v)|= .

Page 12: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

302 Formules valides, formules equivalentes

TheoremeDeux formules � et sont equivalentes si et seulement si la formule�$ est valide.

TheoremeSi, dans une formule, on remplace une sous-formule par une formuleequivalente, alors on obtient une formule equivalente a la formule dedepart.

(Preuves a faire comme exercice).

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

303 Formules valides, formules equivalentes

Exercices : demontrer que

I si � et �! sont des formules valides, alors est une formulevalide ;

I la formule (9x · 8y · �(x , y)) ! (8y · 9x · �(x , y)) est valide ;I la formule (8y · 9x�(x , y)) ! (9x · 8y · �(x , y)) n’est pas valide.

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

Montrons que la formule

9x .8y .�(x , y) ! 8y .9x .�(x , y)

est valideRappel : soient

⌘ 1 ! 2

1 ⌘ 9x .8y .�(x , y) 2 ⌘ 8y .9x .�(x , y)

valide ssi pour toute structure µ : µ |= valide ssi pour toute structure µ : si µ |= 1 alors µ |= 2

valide ssi pour toute structure µ : soit µ 6|= 1, ou µ |= 1 et µ |= 2

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

or si µ |= 1 alors pour toute valuation v ,

9u 2 Dµ : µ, v[x 7!u] |= 8y .�(x , y)

si µ |= 1 alors pour toute valuation v ,

9u 2 Dµ8w 2 Dµ : µ, v[x 7!µ,y 7!w ] |= �(x , y)

On a donc que 8w 2 Dµ : µ, v[x 7!u,y 7!w ] |= �(x , y). Donc on sait que�(x , y) est verifiee pour n’importe quelle valeur attribuee a y si onattribue a x la valeur u. Il su�t donc de choisir cette valeur lors del’evaluation de la quantification existentielle dans la formule

8y9x · �(x , y)

Page 13: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

306 Formules valides, formules equivalentes

Definition (substitution dans les termes)Etant donne un terme t et une variable x apparaissant dans ce terme, onpeut remplacer toutes les occurrences de x par un autre terme t 0. Lenouveau terme est dit obtenu par substitution de t 0 a x et est notet(t 0/x).

Exemple :

I le resultat de la substitution de f (y , z) a x dans le terme h(x , y) estle terme h(f (y , z), y) ;

I le resultat de la substitution de g(y , z) a x dans le terme g(x , x) estg(g(y , z), g(y , z)).

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

307 Formules valides, formules equivalentes

Remarque sur la substitution dans les formulesAvant d’e↵ectuer la substitution d’un terme a une variable libre dans uneformule, il est necessaire de prendre quelques precautions. Sinon, lasignification de la formule peut etre completement modifiee par unphenomene appele capture de variables .

Exemple : soit �(x) la formule 9y · g(y , y) = x . Dans la structureM = (NN,,+1,+,⇥, 0, 1), ou g est interprete par l’addition, lasignification de �(x) est claire : (M, v) |= �(x) ssi v(x) est pair. Si l’onremplace la variable x par z , cette signification est conservee. Par contresi l’on remplace la variable x par y , on obtient : 9y · g(y , y) = y qui estune formule close qui est vraie dans M (en e↵et, il su�t de choisir lavaleur 0 pour la variable y).

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

308 Formules valides, formules equivalentes

Definition (Substitution dans les formules)La substition d’un terme t a une variable libre x dans une formule � estobtenue en remplacant toutes les occurrences libres de cette variable parle terme t, sous reserve que la condition suivante soit verifiee : pourchaque variable y apparaissant dans t, x n’a pas d’occurrence libre qui setrouve dans une sous-formule de � commencant par une quantification8y ou 9y . Le resultat de cette substitution, si elle existe, est une formulenotee �(t/x).

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

309 Formules valides, formules equivalentes

Exemple : le resultat de la substitution du terme f (z) a la variable x dansla formule �(x) suivante :

((r(c , x) ^ ¬x = c) ^ (9yg(y , y) = x))

est la formule

((r(c , f (z)) ^ ¬f (z) = c) ^ (9yg(y , y) = f (z)))

Notons que la substitution de y a x n’est pas possible dans cette memeformule.

Page 14: La Logique des Pr´edicats - ulb.ac.be · INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´edicats Syntaxe 277 Des exemples de formules

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

310 Formules valides, formules equivalentes

TheoremeSi � est une formule, x est une variable libre dans � et t un terme tel quela substitution de t a x dans � soit definie, alors les formules

(8x · �(x)) ! �(t/x)et

�(t/x) ! (9x · �(x))sont valides.

Preuve. Etant donnees une structure µ et une valuation v , on supposeque µ, v |= 8x · �(x) et on va montrer que µ, v |= �(t/x). Nousmontrons d’abord que µ, v |= �(t/x) si et seulement siµ, v[x 7!tµ,v ] |= �(x), ce qui su�ra pour conclure car par hypothese,µ, v[x 7!u] |= �(x) pour toute valeur u de Dµ.Nous montrons l’equivalence par induction sur la formule. Les seuls cas ouil faut faire attention sont les cas ou � commence par un quantificateur.Prenons le cas d’un quantification existentielle : �(x) ⌘ 9y · (x , y).

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

D’apres l’hypothese de la substitution de t a x , la quantification porte surune variable y distincte a la fois de x et de toutes variables de t.On obtient donc :

µ, v |= 9y · (t/x , y)ssi

il existe u 2 Dµ tel que µ, v 0 |= (t/x , y) ou v 0 = v[y 7!u]

ssi (par hypothese d’induction)il existe u 2 Dµ tel que µ, v 0

[x 7!tµ,v0 ]|= (x , y)

ssi (comme tµ,v0= tµ,v puisque y n’apparaıt pas dans t)

il existe u 2 Dµ tel que µ, v 0[x 7!tµ,v ] |= (x , y)

ssi (puisque v 0 et v sont egales sauf eventuellement sur y)µ, v[x 7!tµ,v ] |= 9y · (x , y)

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

312 Formules valides, formules equivalentes

Les couples de formules suivants sont des exemples de formulesequivalentes :

I � et 8x · � si x n’est pas libre dans � ;

I � et 9x · � si x n’est pas libre dans � ;

I 8x · (� ^ ) et (8x · �) ^ (8x · )I 9x · (� _ ) et (9x · �) _ (9x · )I 9x · (�! ) et 9x · (¬� _ )I 9x · � et 9y · �(y/x) si x est libre dans � et y n’apparaıt pas dans �

I 8x · � et 8y · �(y/x) si x est libre dans � et y n’apparaıt pas dans �

Si x n’est pas libre dans , on obtient les equivalences suivantes :

I 8x · (� ^ ) et (8x · �) ^ I 9x · (� ^ ) et (9x · �) ^

INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique

La Logique des Predicats

Semantique

313 Formules valides, formules equivalentes

Les equivalences suivantes nous permettent de faire passer en tete deformule tous les quantificateurs. Soit � une formule, x une variable et une formule dans laquelle x n’est pas libre :

I ¬8x · � et 9x · ¬�I ¬9x · � et 8x · ¬�I (8x · �) _ et 8x · (� _ )I (9x · �) ^ et 9x · (� ^ )I ( ! 8x · �) et 8x · ( ! �)

I ( ! 9x · �) et 9x · ( ! �)

I (8x · �) ! et 9x · (�! )

I (9x · �) ! et 8x · (�! )

Notons egalement que les formules suivantes sont equivalentes :

I 8x · 8y · � et 8y · 8x · �I 9x · 9y · � et 9y · 9x · �