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
Les quantificateurs
I ingredient de base de la logique du premier ordre ...
I permettent d’etendre la logique propositionnelle en la logiquepropositionnelle quantifiee
8p9q.(p _ q) ^ (¬p _ ¬q)
se lit “pour tout p”, “il existe q”, tel que ...
I est-ce une formule satisfaisable ?
I oui, si p est vraie, alors on prend q fausse, et si p est fausse, alors onprend q vraie.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction
Les quantificateurs
I ingredient de base de la logique du premier ordre ...
I permettent d’etendre la logique propositionnelle en la logiquepropositionnelle quantifiee
8p9q.(p _ q) ^ (¬p _ ¬q)
se lit “pour tout p”, “il existe q”, tel que ...
I est-ce une formule satisfaisable ?
I oui, si p est vraie, alors on prend q fausse, et si p est fausse, alors onprend q vraie.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction
Les quantificateurs
I ingredient de base de la logique du premier ordre ...
I permettent d’etendre la logique propositionnelle en la logiquepropositionnelle quantifiee
8p9q.(p _ q) ^ (¬p _ ¬q)
se lit “pour tout p”, “il existe q”, tel que ...
I est-ce une formule satisfaisable ?
I oui, si p est vraie, alors on prend q fausse, et si p est fausse, alors onprend q vraie.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction
Les quantificateurs
I ingredient de base de la logique du premier ordre ...
I permettent d’etendre la logique propositionnelle en la logiquepropositionnelle quantifiee
8p9q.(p _ q) ^ (¬p _ ¬q)
se lit “pour tout p”, “il existe q”, tel que ...
I est-ce une formule satisfaisable ?
I oui, si p est vraie, alors on prend q fausse, et si p est fausse, alors onprend q vraie.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction
Probleme QSAT
Decider la satisfaisabilite de formules de la forme
8p19q18p29q2 . . . 8qn9qn.�
ou � est une formule en CNF construite sur les propositionsp1, q1, . . . , pn, qn.
I Remarque : ce probleme est PSPace-complet
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction
150 Introduction
En logique des predicats,
I on ajoute les quantificateurs
I on generalise les valeurs que peuvent prendre les variables (0,1 pourla logique propositionnelle, des valeurs sur un ensemble quelconquepour la logique des predicats)
I on ajoute des relations (appeles predicats) pour decrire certainesrelations entre ces valeurs (R(x , y) veut dire que x et y sont enrelation)
I on ajoute des symboles de fonctions a la syntaxe
Exemple : 8x8y · PremierEntreEux(x , y) $ 9x 09y 0 · x .x 0 + y .y 0 = 1
I PremierEntreEux est un predicat a deux arguments,
I 1 est appelee constante
I x .x 0 + y .y 0 est un terme forme avec les fonctions ⇥ et .
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction
151 Introduction a la logique des predicats
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
152 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 d’informatique fondamentale.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction
153 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)
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Syntaxe
154 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
155 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
155 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
155 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
155 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
155 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
155 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
155 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
155 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
156 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
157 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 |n
pour 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
157 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 |n
pour 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
158 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
159 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
160 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.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Syntaxe
161 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
162 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
163 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
163 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
164 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
165 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
166 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
167 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
167 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
167 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
168 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 ;
Id’une fonction de Mm
dans M, notee f M, pour chaque symbole de
fonction f d’arite m dans L ;
Id’un element de M, note cM, pour chaque symbole de constante cdans L.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Semantique
169 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 .
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Semantique
170 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
171 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
alorstM,v = f M(b1, b2, . . . , bn) ;
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Semantique
172 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
172 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
172 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
173 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 � estvraie ssi (b1, b2, . . . , bn) 2 rM ;
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Semantique
174 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
175 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 |=�.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Semantique
176 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
177 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
178 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
179 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)|= .
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Semantique
180 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
181 Formules valides, formules equivalentes
Exercices (sera fait en TP) : 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)
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Semantique
184 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
185 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 · �
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Semantique
186 Exercice (sera fait en TP)
Demontrer les equivalences precedentes.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Semantique
187 Modelisation de probleme
Nous allons nous interesser a la resolution d’une enigme posee parEinstein.