Vous êtes sur la page 1sur 78

Chapitre 3 : Logique des prédicats

Logique formelle 17/11/2023


Introduction
2

 Considérons l’exemple de raisonnement qui suit :

Tout être humain est mortel. Socrate est un être humain. Donc, Socrate est mortel.
 Trois propositions :

p : Tout être humain est mortel.


q : Socrate est un être humain
r : Socrate est mortel
𝒑𝒒→𝒓
 La logique propositionnelle ne peut pas présenter les relations entre p, q et r.

il n’existe pas de notion d’énoncé singulier (Socrate est mortel) et d’énoncé générique
(Tout être humain est mortel).

Logique formelle 17/11/2023


Introduction
3

 Logique de prédicats (ou logique de 1er ordre) LP1 :

Énoncé singulier : Socrate est un être humain : être-humain(socrate)


 où ‘Socrate’ est l‘individu ou l’objet, et ‘être-humain’ est la propriété.
Énoncé générique : TOUT être humain est mortel :
x être-humain(x) → mortel(x)
 Le raisonnement précédent peut être formulé comme suit :

(x être-humain(x) → mortel(x) )  être-humain(socrate) → mortel(socrate)


 La logique de prédicats a pour but de généraliser la logique propositionnelle en
introduisant les variables (x, y, z, etc. ), les quantificateurs (, ) et les prédicats
(mortel, être-humain, etc.).

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
4

 Alphabet du LP1 :

un ensemble dénombrable VAR de variables d'objets ou d'individus (constantes).


Exemple : x, y, z, …, a, p...
un ensemble dénombrable R de symboles de prédicats à n arguments (n ≥0)
Exemple : mortel(), aime(), enfant-de(), plus-grand(), …
un ensemble dénombrable F de symboles de fonctions à n arguments (n ≥0).
Exemple : âge-de(), double-de()...
les quantificateurs : , 
les connecteurs :¬,,, →,
les séparateurs/ parenthèses : ‘(‘ et ‘)‘.
Remarque : les constantes : F (faux,) et V (vrai) sont généralement non considérées en LP1.
Logique formelle 17/11/2023
1. Langage des prédicats : syntaxe
5

 Définition 1 : Terme
 Toute variable est un terme.
 Toute constante est un terme.
 f(t1,...,tn) est un terme (dit fonctionnel) si f est une fonction à n arguments avec
(n>0) et t1,...,tn sont des termes.
 Les constantes de l'alphabet de la logique des prédicats désignent des objets et
des individus particuliers. Elles sont notées en minuscule.

Exemples : a, b, socrate, ali, jean, …

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
6

 Définition 2 : Prédicat

 Un prédicat est une relation qui contient une ou plusieurs variables et qui
détermine si une certaine propriété ou relation est vraie ou fausse pour un
ensemble donné d'arguments ou de termes.
 Les prédicats à 0 arguments peuvent être considérés comme des variables
propositionnelles.
Exemples : 𝑖𝑙_𝑝𝑙𝑒𝑢𝑡, 𝑙𝑎_𝑟𝑜𝑢𝑡𝑒_𝑒𝑠𝑡_𝑚𝑜𝑢𝑖𝑙𝑙é𝑒, 𝑝, 𝑞, …
 Les prédicats à 1 argument présentent des propriétés et ceux avec n arguments
présentent des relations.
Exemples :
𝑝𝑟𝑒𝑚𝑖𝑒𝑟 (𝑥), ℎ𝑜𝑚𝑚𝑒(𝑗), … 𝑝𝑙𝑢𝑠_𝑔𝑟𝑎𝑛𝑑(𝑎𝑙𝑖, 𝑠𝑎𝑙𝑒ℎ), 𝑝𝑙𝑢𝑠_𝑝𝑒𝑡𝑖𝑡(𝑥, 𝑦), …
Logique formelle 17/11/2023
1. Langage des prédicats : syntaxe
7

 Définition 3 : Fonction

 Une fonction est notée avec des symboles, par exemple f(x) ou g(x, y), et elles
prennent des arguments (termes) et retournent un résultat. Elles représentent
des opérations ou des transformations.
 Les fonctions à 0 arguments peuvent être considérés comme des constantes.
Exemples : 𝑃𝑖 = 3,14
 Exemples de prédicats à n arguments avec n >0 :
Exemples : 𝑆𝑢𝑐𝑐𝑒𝑠𝑠𝑒𝑢𝑟_𝑑𝑒(𝑥), 𝐴𝑔𝑒_𝑑𝑒(𝑗𝑒𝑎𝑛), …

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
8

 Définition 4 : Atome

 Si 𝑝 est un prédicat à 𝑛 arguments (𝑛 ≥ 0) et 𝑡1, … , 𝑡𝑛 sont des termes alors


𝑝(𝑡1, … , 𝑡𝑛) est un atome (ou formule atomique).
Exemples : 𝑝𝑙𝑢𝑠_𝑔𝑟𝑎𝑛𝑑(𝑎𝑙𝑖, 𝑠𝑎𝑙𝑒ℎ), 𝑝𝑙𝑢𝑠_𝑝𝑒𝑡𝑖𝑡(𝑥, 𝑦), ℎ𝑜𝑚𝑚𝑒(𝑗), …
 Définition 5 : Formule

si 𝐴 est un atome alors 𝐴 est une formule.


¬𝐴 est une formule si 𝐴 est une formule.
(𝐴  𝐵), (𝐴  𝐵), (𝐴 → 𝐵) et (𝐴  𝐵) sont des formules, si 𝐴 et 𝐵 le sont.
Si 𝐴 est une formule et x une variable alors ( 𝒙 𝐴 et  𝒙 𝐴) sont des formules.

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
9

 Définition 6 : Portée d’un quantificateur

 Dans une formule 𝐴 = 𝑄 𝑥 𝐵, avec 𝑄 quantificateur et 𝑥 variable, 𝐵 est appelée


la portée du quantificateur 𝑄.
 C’est un atome ou une formule à laquelle la quantification s’applique.
 Exemple :
𝑃(𝑥)  𝑥(𝑷(𝒙, 𝒚)  𝒚 ¬𝑸 𝒙, 𝒚  𝑹(𝒙, 𝒚))

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
10

 Définition 7 : Variable liée

 C’est une variable sous la portée de quantificateurs.


 Ensemble de variable liée de A noté Varlie(A) :
Si A est un atome alors Varlie(A) = ∅
Si A est de la forme B → C alors Varlie(A) = Varlie(B) ∪ Varlie(C )
Si A est de la forme ¬ B alors Varlie(A) = Varlie(B)
Si A est de la forme ∀x B alors Varlie(A) = Varlie(B) ∪ {x}
 Exemples :

𝑥 𝑃 𝒙
 𝑥 𝑃(𝒙)  (𝑦 𝑄(𝑥, 𝑦))
Logique formelle 17/11/2023
1. Langage des prédicats : syntaxe
11

 Définition 8 : Variable libre

 C’est une variable qui n’est pas sous la portée de quantificateurs.


 Ensemble de variable libre de A noté Varlib(A) :
Si A est un atome alors Varlib(A) = Var(A)
Si A est de la forme B → C alors Varlib(A) = Varlib(B) ∪ Varlib(C)
Si A est de la forme ¬B alors Varlib(A) = Varlib(B)
Si A est de la forme ∀x B alors Varlib(A) = Varlib(B) - {x}
 Exemples :

𝑃(𝒙)

𝑥 (𝑃(𝑥)  𝑄(𝑥, 𝒚))


Logique formelle 17/11/2023
1. Langage des prédicats : syntaxe
12

 Définition 9 : Formule close ou fermée

 C’est une formule sans variable libre.


 Définition 10 : formule ouverte

 C’est une formule avec au moins une variable libre.


 Exemples :

 ∀𝑦 ( 𝑝 𝒙  ∃𝑥 𝑝 𝑥  𝑞(𝑦)) est ouverte, car il y a une occurrence de variable


libre.
 ∀𝑥 ∀𝑦 ( 𝑝 𝑥  ∃𝑥 𝑝 𝑥  𝑞(𝑦)) est fermée (c'est la fermeture universelle de A).
 ∃𝑥 ∀𝑦 ( 𝑝 𝑥  ∃𝑥 𝑝 𝑥  𝑞(𝑦)) est également fermée (c'est la fermeture
existentielle de A).
Logique formelle 17/11/2023
1. Langage des prédicats : syntaxe
13

 Exercices :

 Déterminer l’ensemble de variables, de variables liées et de variables libres de :


𝐴 = (𝑝(𝑓(𝑥, 𝑦 ))  𝑧 𝑟(𝑎, 𝑧))
𝐵 = (𝑥 𝑝(𝑥, 𝑦 , 𝑧)  𝑧 (𝑝(𝑧) → 𝑟(𝑧)))
𝐶 = 𝑥 ∃𝑦 (𝑝(𝑥, 𝑦 ) → 𝑧 𝑟(𝑥, 𝑦 , 𝑧))
 Parmi les formules suivantes lesquelles sont des formules closes (ou fermés) ?
𝑥 (𝑝𝑙𝑢𝑖𝑒(𝑥)  ¬𝑠𝑜𝑟𝑡𝑖𝑟 (𝑥))
∃𝑥 (¬𝑝𝑙𝑢𝑖𝑒(𝑥)  (𝑥 (𝑑𝑖𝑓𝑓é𝑟𝑒𝑛𝑡(𝑥, 𝑦) → 𝑝𝑙𝑢𝑖𝑒(𝑦))))
𝑥 𝑃(𝑥, 𝑦 )  𝑦 𝑄(𝑦)

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
14

 Représentation des énoncés en LP1 :

 Un objet est de certaine catégorie :


Jean est un homme. ℎ𝑜𝑚𝑚𝑒(𝑗𝑒𝑎𝑛)
 Un groupe nominal :
Phrase contient « un homme ». 𝑥 ℎ𝑜𝑚𝑚𝑒(𝑥)
 Un fait :
Un homme marche. 𝑥 ℎ𝑜𝑚𝑚𝑒(𝑥)  𝑚𝑎𝑟𝑐ℎ𝑒(𝑥)

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
15

 Représentation des énoncés en LP1 :

 Une connaissance (une observation généralisée) :


« Tout homme marche »
« Si un objet est un homme, alors il marche. » 𝑥 ℎ𝑜𝑚𝑚𝑒(𝑥)→ 𝑚𝑎𝑟𝑐ℎ𝑒(𝑥)

Erreur : traduire "homme" et "marche" comme 2 qualités parallèles à un objet


𝑥 ℎ𝑜𝑚𝑚𝑒(𝑥)  𝑚𝑎𝑟𝑐ℎ𝑒(𝑥)
Cette traduction correspond à « Tout objet est un homme et qu'il marche ». C’est
évidemment pas le même sens.

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
16

 Représentation des énoncés en LP1 :

 Une connaissance (une observation généralisée) :

marche homme marche


homme

« Tout homme marche »


« Tout objet est un homme et qu'il marche»
« Si un objet est un homme, alors il marche. »
𝑥 ℎ𝑜𝑚𝑚𝑒(𝑥)  𝑚𝑎𝑟𝑐ℎ𝑒(𝑥)
𝑥 ℎ𝑜𝑚𝑚𝑒(𝑥)→ 𝑚𝑎𝑟𝑐ℎ𝑒(𝑥)
Logique formelle 17/11/2023
1. Langage des prédicats : syntaxe
17

 Représentation des énoncés en LP1 :

 Une connaissance (une observation généralisée) :


Tout homme qui est jeune marche. 𝑥 ℎ𝑜𝑚𝑚𝑒(𝑥)  𝑗𝑒𝑢𝑛𝑒(𝑥) → 𝑚𝑎𝑟𝑐ℎ𝑒(𝑥)
Erreur : traduire comme : 𝑥 (ℎ𝑜𝑚𝑚𝑒(𝑥) → 𝑗𝑒𝑢𝑛𝑒(𝑥)) → 𝑚𝑎𝑟𝑐ℎ𝑒(𝑥)
Si tous les hommes sont jeunes, alors ils marchent

Chacun a un père. 𝑥 𝑦 𝑝è𝑟𝑒(𝑦, 𝑥) 𝑜𝑢 𝑥 𝑎_𝑝è𝑟𝑒(𝑥)


Chaque père a une femme. 𝑦(𝑥 𝑝è𝑟𝑒(𝑦, 𝑥)) → (𝑧 𝑓𝑒𝑚𝑚𝑒(𝑧, 𝑦))

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
18

 Représentation des énoncés en LP1 :

 Négation :

Il n'y a pas d'homme qui marche = Aucun homme ne marche


¬(𝑥 ℎ𝑜𝑚𝑚𝑒(𝑥)  𝑚𝑎𝑟𝑐ℎ𝑒(𝑥)) 𝑥 ℎ𝑜𝑚𝑚𝑒(𝑥) → ¬𝑚𝑎𝑟𝑐ℎ𝑒(𝑥)

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
19

 Représentation des énoncés en LP1 : carré d’Aristote

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
20

 Exercices : Représenter en logique des prédicats les énoncés suivants :

 Tout est relatif.


 Une porte est ouverte ou fermée.
 Une porte est ou bien ouverte ou bien fermée.
 Tout ce qui brille n’est pas or.
 Il y a des peines, il y a des plaisirs, mais aucune peine n’est un plaisir.
 Tous les chemins mènent à Rome.
 Pour tout entier, il existe un entier plus grand.

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
21

 Exercices : Représenter en logique des prédicats les énoncés suivants en utilisant


les cinq prédicats suivants :
 𝑀(𝑥, 𝑦) : 𝑥 mange 𝑦 ;
 𝐻(𝑥) : 𝑥 est un herbivore ;

 𝑉(𝑥) : 𝑥 est un (type de) végétal ;

 𝐵(𝑥) : 𝑥 est un bambou ;

 𝑃(𝑥) : 𝑥 est un panda.

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
22

Les herbivores mangent des végétaux.


a.

b. Les herbivores ne mangent que des végétaux.

c. Aucun herbivore ne mange tout type de végétal.

d. Il y a des végétaux que ne mange aucun herbivore.

e. Certains herbivores ne mangent pas de bambou.

f. Les pandas sont des herbivores qui ne consomment que des bambous.
 Comment traduiriez-vous en français la formule suivante ?
➢ ∀𝑥(∀𝑦(𝑀(𝑥, 𝑦) → 𝐵(𝑦)) → 𝑃(𝑥))

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
23

 Remarques : Les quantificateurs ∀ et ∃ peuvent être remplacés par une


présentation en utilisant le connecteur de négation :
 ∃𝑥 𝐴  ¬∀𝑥 ¬𝐴
 ∀𝑥 𝐴  ¬∃𝑥 ¬𝐴

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
24

 Définition 10 : formule propre

 Une formule 𝐴 est dite propre lorsque :


Il n’existe pas de variable dans 𝐴 qui a, à la fois, des occurrences libres et des
occurrences liées.
Deux occurrences liées d’une même variable dans 𝐴 appartiennent à la portée
d’un même quantificateur.
 Définition 11 : renommage de formules

 Un renommage d’une variable consiste à changer les noms de certaines de ces


occurrences et ce, en donnant le même nom pour ces occurrences liées
appartenant à la même portée d’un quantificateur et le même nom pour ces
occurrences libres.

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
25

 Définition 12 : formule impropre et renommage

 On peut rendre une formule propre par un renommage qui consiste à :


 Changer les occurrences liées d’une variable libre par d’autres noms de
variables, de telle sorte que toute variable libre ne puisse pas avoir
d’occurrences liées.
 Pour chaque occurrence liée d’une variable qui appartient à la portée d’un
quantificateur différent donner un nom différent.
 Exemples :

𝐴 = 𝒙 𝒚 𝒑 𝒙, 𝒚  𝒛 𝒓 𝒚, 𝒛 ∶ impropre
𝐴’ = 𝒙 (∃𝒚𝟏 𝒑(𝒙, 𝒚𝟏 )  𝒛 𝒓(𝒚, 𝒛)) : propre.

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
26

 Définition 12 : substitution de variables :

 Une substitution 𝒔 de 𝑛 variables {𝑥1 , … , 𝑥𝑛} est une application de l’ensemble


des variables dans l’ensemble des termes qui est telle que:
Pour tout 𝑥𝑖 dans {𝑥1 , … , 𝑥𝑛}, 𝑠(𝑥𝑖) = 𝑡𝑖
Pour tout 𝑥 / 𝑥 {𝑥1 , … , 𝑥𝑛}, 𝑠(𝑥) = 𝑥.
𝑠 est notée par : {𝑥1\t1 , … , 𝑥𝑛\tn} (parfois, (𝑡1 /𝑥1 , … , 𝑡𝑛 /𝑥𝑛 )).
 L'application d'une substitution 𝒔 à une expression 𝐸 est le résultat du
remplacement simultanée de toutes les occurrences libres des variables dans 𝑬
par leur terme associé.
 Si 𝑬 est une expression alors 𝑬𝒔 est appelé une instance de 𝐸.

 Si 𝑬𝒔 ne contient pas de variables on dit que 𝒔 instancie 𝐸.


Logique formelle 17/11/2023
1. Langage des prédicats : syntaxe
27

 Exemples :

 (𝑝 𝑥  𝑞(𝑥, 𝑦)){𝑥\z} = 𝑝 𝑧  𝑞(𝑧, 𝑦)


 (𝑝 𝑥  𝑞(𝑥, 𝑦)){𝑥\y} = 𝑝 𝑦  𝑞(𝑦, 𝑦)
 (∀𝑥 𝑞(𝑥, 𝑦)){𝑥\z} = ∀𝑥 𝑞(𝑥, 𝑦)
 (𝑝 𝑥  𝑞(𝑥, 𝑦)){𝑥\z, 𝑦\z} = 𝑝 𝑧  𝑞(𝑧, 𝑧)
 (𝑝 𝑥  𝑞(𝑥, 𝑦)) 𝑥\f(𝑥) = 𝑝 𝑓 𝑥  𝑞(𝑓(𝑥), 𝑦)
 (𝑝 𝑥  𝑞(𝑥, 𝑦)){𝑥\y, 𝑦\a} = 𝑝 𝑦  𝑞(𝑦, 𝑎)
 (𝑝 𝑥  𝑞(𝑥, 𝑦)){𝑥\y, 𝑦\x} = 𝑝 𝑦  𝑞(𝑦, 𝑥)

Logique formelle 17/11/2023


1. Langage des prédicats : syntaxe
28

 Substitution et renommage :

 Le résultat 𝐴𝑠 de l’application d’une substitution 𝑠 = {𝑥1\t1 , … , 𝑥𝑛\tn} à une


formule propre 𝐴 n’est pas forcément une formule propre, à moins de respecter
la règle suivante :
lesvariables apparaissant dans les termes 𝑡𝑖 ne sont pas des variables liées
de 𝐴.
On dit que 𝒔 est définie pour 𝑨 si elle respecte cette règle.
 Lorsque une substitution ne respecte pas cette règle pour une formule 𝐴, on
peut avoir recours au renommage.

Logique formelle 17/11/2023


2. Sémantique
29

 Motivation :

 Comme en logique propositionnelle, on fixe d'abord un ensemble de modèles


(aussi appelés valuations ou interprétations).
 Ensuite, pour un modèle donné, on stipule des conditions de vérité permettant
d'établir pour n'importe quelle formule A du langage si A est vraie ou fausse dans
ce modèle.
 Pour donner un « sens » aux variables, constantes et fonctions du langage, il faut
un domaine d'objets (ou domaine d'individu, ou univers de discours).
 À chaque variable et constante sera associé un élément du domaine.

 À chaque fonction sera associé une application dans le domaine.

Logique formelle 17/11/2023


2. Sémantique
30

 Motivation :

 Puis, pour pouvoir donner un « sens » aux formules, il faut une fonction associant
à chaque symbole de prédicat à 𝑛 places l'ensemble des n-uplets d'éléments du
domaine qui le rendent vrai.
 Finalement, l'interprétation d'une formule 𝐴 se fait comme en logique
propositionnelle : 𝐼(𝐴) prend une valeur dans l'ensemble 𝑇𝑟𝑢𝑒, 𝐹𝑎𝑙𝑠𝑒 :
la quantification universelle ∀𝑥 𝐴 est interprétée comme « pour toute
interprétation de x, A est vrai »
 la quantification existentielle ∃𝑥 𝐴 est interprétée comme « il existe une
interprétation de x telle que A est vrai ».

Logique formelle 17/11/2023


2. Sémantique
31

 Définition 13 : Interprétation

 Une interprétation 𝐼 est constituée de :


un ensemble non-vide 𝐷 appelé domaine d'individus
une fonction 𝐼𝑉 de l'ensemble des variables dans 𝐷
une fonction 𝐼𝑃 associant à chaque prédicat à n arguments une application de 𝐷𝑛 dans
{𝐹𝑎𝑙𝑠𝑒, 𝑇𝑟𝑢𝑒}
une fonction 𝐼𝐹 associant à chaque fonction à n arguments une application de 𝐷𝑛 dans
𝐷.
Par abus de notation, les fonctions d'interprétation 𝐼𝑉, 𝐼𝑃 et 𝐼𝐹 sont souvent notées 𝐼.

Logique formelle 17/11/2023


2. Sémantique
32

 Définition 14 : Interprétation des termes


 Une
interprétation donnée I peut être étendue aux termes par :
𝐼(𝑓(𝑡1, … , 𝑡𝑛)) = (𝐼𝐹(𝑓))(𝐼(𝑡1), … , 𝐼(𝑡𝑛))
 Définition 15 : Interprétation des formules

 Une interprétation 𝐼′ est une variante en 𝑥 de 𝐼 si 𝐼′ est identique à 𝐼 sauf en 𝑥 (la


seule différence entre 𝐼 et 𝐼′ est la valeur qu'elles donnent à 𝑥).
 NB : 𝐼 et 𝐼′ peuvent être identiques : 𝐼 est une variante de 𝐼’ en 𝑥 .

 Une interprétation donnée I peut être étendue aux formules par :

 𝐼(𝑝(𝑡1 , … , 𝑡𝑛 )) = 𝑇𝑟𝑢𝑒 ssi 𝐼𝑃(𝑝)( 𝐼(𝑡1), … , 𝐼(𝑡𝑛) ) = 𝑇𝑟𝑢𝑒


 𝐼(∀𝑥 𝐴) = 𝑇𝑟𝑢𝑒 ssi 𝐼′(𝐴) = 𝑇𝑟𝑢𝑒 pour toute variante 𝐼′ de 𝐼 en 𝑥
 𝐼(∃𝑥 𝐴) = 𝑇𝑟𝑢𝑒 ssi il existe une variante 𝐼′ de 𝐼 en 𝑥 telle que 𝐼′(𝐴) = 𝑇𝑟𝑢𝑒
 ainsi que les conditions de vérité des connecteurs propositionnels
Logique formelle 17/11/2023
2. Sémantique
33

 Exemple :

 Soit le domaine d'individus : 𝐷 = {𝐴𝑙𝑖𝑐𝑒, 𝐵𝑒𝑟𝑛𝑎𝑟𝑑, 𝐶ℎ𝑟𝑖𝑠𝑡𝑖𝑎𝑛}.


 Soit l'interprétation de variables telle que :
 𝐼𝑉(𝑥) = 𝐴𝑙𝑖𝑐𝑒, 𝐼𝑉(𝑦) = 𝐵𝑒𝑟𝑛𝑎𝑟𝑑, 𝐼𝑉(𝑧) = 𝐶ℎ𝑟𝑖𝑠𝑡𝑖𝑎𝑛.
 Soit l'interprétation des prédicats telle que :
𝐼𝑃 𝑎𝑖𝑚𝑒 𝐴𝑙𝑖𝑐𝑒, 𝐵𝑒𝑟𝑛𝑎𝑟𝑑 = 𝑇𝑟𝑢𝑒, 𝐼𝑃 𝑎𝑖𝑚𝑒 𝐵𝑒𝑟𝑛𝑎𝑟𝑑, 𝐴𝑙𝑖𝑐𝑒 = 𝑇𝑟𝑢𝑒,
𝐼𝑃 𝑎𝑖𝑚𝑒 𝐶ℎ𝑟𝑖𝑠𝑡𝑖𝑎𝑛, 𝐴𝑙𝑖𝑐𝑒 = 𝑇𝑟𝑢𝑒 , et 𝐹𝑎𝑙𝑠𝑒 sinon.
 Le même domaine 𝐷 avec l'interprétation de variables 𝐼𝑉′ telle que
𝐼𝑉′(𝑥) = 𝐴𝑙𝑖𝑐𝑒, 𝐼𝑉′(𝑦) = 𝐼𝑉(𝑧) = 𝐵𝑒𝑟𝑛𝑎𝑟𝑑 est la même interprétation des
prédicats est une variante de 𝐼 en 𝑧.

Logique formelle 17/11/2023


2. Sémantique
34

 Exercice 1 :

 Soit le vocabulaire 𝑊 = { 𝑎, 𝑏, 𝑐, 𝑑 ∶ 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒𝑠; 𝑥, 𝑦: 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠


𝑒𝑡 𝑓: 𝑢𝑛𝑒 𝑓𝑜𝑛𝑐𝑡𝑖𝑜𝑛}
 Le domaine d’interprétation 𝐷 = {0, 1, 2, 3}

 Soit l’interprétation I telle que :

𝐼(𝑎) = 0, 𝐼(𝑏) = 1, 𝐼(𝑐) = 2 𝑒𝑡 𝐼(𝑑) = 3


𝐼(𝑥) = 1 𝑒𝑡 𝐼(𝑦) = 0
𝐼(𝑓)(0, 0) = 0, 𝐼(𝑓)(0, 1) = 0, 𝐼(𝑓)(1, 0) = 2, 𝐼(𝑓)(2, 3) = 2,
𝐼(𝑓)(3, 3) = 3 𝐼(𝑓)(… , … ) = 3

Logique formelle 17/11/2023


2. Sémantique
35

 Exercice 1 :

 Interpréter :
1. 𝐼(𝑎)
2. 𝐼(𝑦)
3. 𝐼(𝑝(𝑎, 𝑥))
4. 𝐼(𝑝(𝑦, 𝑝(𝑎, 𝑏))
5. 𝑝(𝑥, 𝑝(𝑦, 𝑏))

Logique formelle 17/11/2023


2. Sémantique
36

 Exercice 2 :

 Soient:
le vocabulaire 𝑊 = {𝑎, 𝑏: 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒𝑠, 𝑓: 𝑓𝑜𝑛𝑐𝑡𝑖𝑜𝑛, 𝑃: 𝑃𝑟é𝑑𝑖𝑐𝑎𝑡}
le domaine d'interprétation 𝐷 = {1, 2}
la fonction d’interprétation 𝐼
𝐼(𝑎) = 1; 𝐼(𝑏) = 2

𝐼(𝑓(1)) = 2; 𝐼(𝑓(2)) = 1

𝐼 𝑃 2, 1 = 𝐹𝑎𝑙𝑠𝑒; 𝐼 𝑃 2, 2 = 𝐹𝑎𝑙𝑠𝑒;
𝐼(𝑃(1, 2)) = 𝑇𝑟𝑢𝑒; 𝐼(𝑃(1, 1)) = 𝑇𝑟𝑢𝑒

Logique formelle 17/11/2023


2. Sémantique
37

 Exercice 2 :

 Interpréter :
1. 𝑃(𝑏, 𝑓(𝑏))
2. 𝑃(𝑓(𝑎), 𝑏))
3. 𝐼(𝑃(𝑎, 𝑏))
4. 𝐼(∀𝑥 𝑃(𝑏, 𝑥))
5. 𝐼(∃𝑥 𝑃(𝑎, 𝑥))
6. 𝐼(∃𝑥 𝑃(𝑓(𝑏), 𝑥))
7. 𝐼(∃𝑥 𝑃(𝑥, 𝑓(𝑎)))
8. 𝐼(∃𝑥 ∀𝑦 𝑃(𝑥, 𝑦))
9. 𝐼(∀𝑥 ∃𝑦 𝑃(𝑥, 𝑦))
Logique formelle 17/11/2023
2. Sémantique
38

 Interprétation de formules :

 Si la valeur de vérité des formules 𝐴 et 𝐵 est évaluée alors ¬𝐴, 𝐴  𝐵, 𝐴  𝐵, ...


sont évaluées par des tables de vérité.
 (𝒙) 𝐴 est évalué à Vrai si A est évalué à Vrai pour tous les éléments d de D; sinon
A est évalué à Faux.
 (𝒙) 𝐴 est évalué à Vrai si A est évalué à Vrai pour au moins un élément d de D;
sinon A est évalué à Faux.

Logique formelle 17/11/2023


2. Sémantique
39

 Exercice :

 Soient:

le vocabulaire 𝑊 = {𝑎, 𝑏: 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒𝑠, 𝑓: 𝑓𝑜𝑛𝑐𝑡𝑖𝑜𝑛, 𝑃: 𝑃𝑟é𝑑𝑖𝑐𝑎𝑡}


le domaine d′interprétation 𝐷 = {1, 2}
la fonction d’interprétation 𝐼
𝐼(𝑎) = 1; 𝐼(𝑏) = 2

𝐼(𝑓(1)) = 2; 𝐼(𝑓(2)) = 1

𝐼 𝑃 2, 1 = 𝐹𝑎𝑙𝑠𝑒; 𝐼 𝑃 2, 2 = 𝐹𝑎𝑙𝑠𝑒;
𝐼 𝑃 1, 2 = 𝑇𝑟𝑢𝑒; 𝐼 𝑃 1, 1 = 𝑇𝑟𝑢𝑒
1. 𝐼(∃𝑥 ∀𝑦 𝑃(𝑥, 𝑦) → 𝑃(𝑎, 𝑏))
2. 𝐼(∀𝑥 ∀𝑦 𝑃 𝑥, 𝑦 → 𝑃(𝑓(𝑎), 𝑏))
Logique formelle 17/11/2023
2. Sémantique
40

 Définition 16 : modèle

 Une interprétation I est un modèle pour une formule si elle la rend toujours vraie
dans le domaine.
I est un modèle pour une formule A (ou I satisfait A) ssi pour toute assignation de
variable U, on a IU(A) = V , noté |=I A (parfois noté, I(A)= True)
I est un modèle pour un ensemble de formules S ssi I est un modèle pour toute
formule A de S.

Logique formelle 17/11/2023


2. Sémantique
41

 Exemples :

Formule : x (p(x) → q(x, f(x))


Domaine : D = [0, +]
Prédicats : p(x) est vrai si x < 1, q(x, y) est vrai si x > y
Fonctions : f(x) = x²
➢Cette interprétation est un modèle pour la formule
➢Si l’on change le domaine, ça n’est plus un modèle

Logique formelle 17/11/2023


2. Sémantique
42

 Définition 17 : validité, satisfaisabilité

 Soit A une formule:


Aest valide (ou tautologique ; noté |= A) si |=I A (ou I(A) = True) pour toute
interprétation I. Sinon A est invalide ou falsifiable.
Aest satisfaisable ssi il existe une interprétation I et une assignation de
variable U, t.q. IU(A) = True (on dit que I satisfait A pour l’assignation de
variable U ou (I,U) satisfait A). Sinon A est contradictoire.

Logique formelle 17/11/2023


2. Sémantique
43

 Définition 18 : conséquence logique, consistance et équivalence

 Une formule B est conséquence logique d’une formule A si tout couple (I,U)
satisfaisant A, satisfait également B (noté A |= B )

 Pour les autres, appliquer les mêmes définitions et notations que celles de la
logique propositionnelle en respectant évidemment la nouvelle définition de
conséquence logique, de satisfaisabilité et de modèle.
 Conséquence logique et implication :

 Soient A et B deux formules et S un ensemble de formules contenant A :


A |= B ssi |= (A → B).
S |= B ssi S /{A} |= (A → B).
Logique formelle 17/11/2023
2. Sémantique
44

 Quelques exemples de conséquence logique :

 ∃𝑦 ∀𝑥 𝐴 | = ∀𝑥 ∃𝑦 𝐴

 ∃𝑥 (𝐴  𝐵) | = ∃𝑥 𝐴  ∃𝑥 𝐵

 ∀𝑥 𝐴  ∀𝑥 𝐵 | = ∀𝑥 (𝐴  𝐵)

Logique formelle 17/11/2023


2. Sémantique
45

 Quelques exemples d’équivalence:

 ∀𝑥 𝐴 ≡ ¬∃𝑥 ¬𝐴
 ¬∀𝑥 𝐴 ≡ ∃𝑥 ¬𝐴
 ∃𝑥 𝐴 ≡ ¬∀𝑥 ¬𝐴
 ¬∃𝑥 𝐴 ≡ ∀𝑥 ¬𝐴

 ∀𝑥 (𝐴  𝐵) ≡ ∀𝑥 𝐴  ∀𝑥 𝐵
 ∃𝑥 (𝐴  𝐵) ≡ ∃𝑥 𝐴  ∃𝑥 𝐵
 ∃𝑥 (𝐴 → 𝐵) ≡ (∀𝑥 𝐴) → ∃𝑥 𝐵

 ∀𝑥 ∀𝑦 𝐴 ≡ ∀𝑦 ∀𝑥 𝐴
 ∃𝑥 ∃𝑦 𝐴 ≡ ∃𝑦 ∃𝑥 𝐴

Logique formelle 17/11/2023


2. Sémantique
46

 D’autres exemples d’équivalence lorsque x ∉ Varlib(A)

 ∀𝑥 𝐴 ≡ ∃𝑥 𝐴 ≡ 𝐴
 ∀𝑥 (𝐴  𝐵) ≡ 𝐴  ∀𝑥 𝐵
 ∃𝑥 (𝐴  𝐵) ≡ 𝐴  ∃𝑥 𝐵
 ∀𝑥 (𝐴  𝐵) ≡ 𝐴  ∀𝑥 𝐵
 ∃𝑥 (𝐴  𝐵) ≡ 𝐴  ∃𝑥 𝐵
 ∃𝑥 (𝐴 → 𝐵) ≡ 𝐴 → ∃𝑥 𝐵
 ∀𝑥 (𝐴 → 𝐵) ≡ 𝐴 → ∀𝑥 𝐵
 ∃𝑥 (𝐵 → 𝐴) ≡ ∀𝑥 𝐵 → 𝐴
 ∀𝑥 (𝐵 → 𝐴) ≡ ∃𝑥 𝐵 → 𝐴

Logique formelle 17/11/2023


2. Sémantique
47

 Exemple :

 Soientun langage du premier ordre avec un prédicat binaire 𝑅, et deux formules:


𝐹1 ∶ ∃𝑥 ∀𝑦 𝑅(𝑥, 𝑦)
𝐹2 ∶ ∃𝑥∀𝑦 ¬𝑅(𝑥, 𝑦)
 On se donne une interprétation :

𝐷 = {𝑏 = 𝑢𝑛 𝑏𝑜𝑛ℎ𝑜𝑚𝑚𝑒 𝑑𝑒 𝑛𝑒𝑖𝑔𝑒, 𝑜 = 𝑢𝑛 𝑜𝑖𝑠𝑒𝑎𝑢, 𝑐 = 𝑢𝑛𝑒 𝑐𝑒𝑟𝑖𝑠𝑒}.


𝑅(𝑥, 𝑦) ∶ 𝑥 𝑎𝑖𝑚𝑒 𝑦.
1. Donner la valeur de vérité de F1 et F2 dans l’interprétation.

2. Montrer que ∃𝑥∀𝑦 𝑅(𝑥, 𝑦) → ∀𝑦∃𝑥 𝑅(𝑥, 𝑦) est valide.

Logique formelle 17/11/2023


3. Théorie de preuve : introduction
48

 Pour la logique des prédicats comme pour la logique propositionnelle , il existe au


niveau de la théorie de la preuve, différentes méthodes qui permettent de prouver
la validité –ou seulement la satisfiabilité- d’une formule ou de déduire une formule
à partir d’un certain nombre de formules (hypothèses).

 La plupart des définitions et résultats de la logique des propositions restent plus au


moins valables tant qu’on respecte les nouvelles définitions.

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
49

 Trois niveaux de normalisation :

 Forme prénexe
 Skolemisation

 Forme clausale

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
50

 Définition : Forme prénexe

 Une formule 𝐺 est dite en forme prénexe si et seulement si elle est de la forme
𝑄1𝑥1 . . . 𝑄𝑛𝑥𝑛 𝐴, où chaque 𝑄𝑖 est un quantificateur (∀ ou ∃) et 𝐴 ne contient pas
de quantificateur.
𝐴 est appelé une matrice.
 𝑄1𝑥1 . . . 𝑄𝑛𝑥𝑛 est appelé préfixe.
 Pour toute formule 𝐺, il existe une formule 𝐺′ en forme prénexe avec 𝐺 ≡ 𝐺′.

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
51

 Algorithme de normalisation en forme prénexe :

 Entrée : une formule 𝐴


 Sortie : une formule en forme normale prénexe

 Début

Élimination des connecteurs d’implication et d’équivalence.


Renommage des variables (plus de variable libre et liée en même temps).
Suppression des quantificateurs inutiles.
Transfert du connecteur de négation immédiatement devant les atomes.
Transfert des quantificateurs en tête des formules.
 Fin

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
52

 Exemples :

 (∀𝑥 𝑝(𝑥))  𝑟(𝑥) ≡ ∀𝑦 (𝑝(𝑦 )  𝑟 (𝑥))


 (∀𝑥 𝑝(𝑥))  (∀𝑥 𝑟(𝑥)) ≡ ∀𝑥 (𝑝(𝑥)  𝑟 (𝑥))
 (∀𝑥 𝑝(𝑥))  (∀𝑥 𝑟(𝑥)) ≡ ∀𝑥 ∀𝑦 (𝑝(𝑥)  𝑟(𝑦))
 (∀𝑥 𝑝(𝑥))  (∀𝑥 𝑟(𝑥)) ≡ ∀𝑥 ∀𝑦 (𝑝(𝑥)  𝑟(𝑦))
 (∀𝑥 𝑝(𝑥)) → (∃𝑦 𝑟(𝑦 )) ≡ ∃𝑥 ∃𝑦 (¬𝑝(𝑥)  𝑟(𝑦))
 ¬(((∀𝑥 𝑝(𝑥)) → (∃𝑦 𝑟 (𝑦 ))) ≡ ∀𝑥 ∀𝑦 (𝑝(𝑥)  ¬𝑟(𝑦 ))

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
53

 Forme prénexe : remarque

 Il est parfois possible d'être plus économique :


On peut économiser des quantificateurs en éliminant les quantificateurs qui « ne
servent à rien » :
 La formule ∀𝑥 ∃𝑥 (𝑝 𝑥  𝑞(𝑥)) peut alors être simplifiée en :
∃𝑥 (𝑝 𝑥  𝑞(𝑥)).

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
54

 Définition : Forme normale de Skolem

 Une formule est en forme normale de Skolem si elle est en forme normale
prénexe et ne contient pas de quantificateur existentiel.

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
55

 Algorithme de mise en forme normale de Skolem


 Entrée : une formule 𝐴
 Sortie : une formule en forme normale de Skolem

 Début

Mettre 𝐴 en forme normale prénexe;


Pour tout quantificateur existentiel ∃𝑥 apparaissant dans 𝐴 faire
Appliquer la substitution {𝑥\f(𝑥1, … , 𝑥𝑛)} à la matrice de 𝐴 , où 𝑥1, … , 𝑥𝑛 sont
les quantificateurs universels précédant ∃x dans le préfixe de 𝐴
• 𝑓 est une nouvelle fonction qui n'a pas encore été utilisée
•Supprimer ∃𝑥 du préfixe de 𝐴
Fin pour
 Fin
Logique formelle 17/11/2023
3. Théorie de preuve : normalisation
56

 Exemple 1

la formule ∃𝑥 ∀𝑦 𝑝(𝑥, 𝑦) :
Soit
Remplacer 𝑥 par la constante 𝑎 :∀𝑦 𝑝(𝑎, 𝑦)

 Exemple 2

Soit la formule ∀𝑥 ∃𝑦 𝑝(𝑥, 𝑦) :


Remplacer 𝑦 par la fonction 𝑓(𝑥) ∶ ∀𝑥 𝑝(𝑥, 𝑓(𝑥))

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
57

 Exemple 3 :

• Soit la formule ∃𝑢 ∀𝑥 ∃𝑦 ∀𝑧 ∃𝑡 (𝑝 𝑥  𝑞 𝑦  𝑟 𝑥, 𝑧, 𝑡  𝑠 𝑦  𝑘(𝑢)) :


Remplacer 𝑢 par la constante 𝑎 ∶
∀𝑥 ∃𝑦 ∀𝑧 ∃𝑡 ( 𝑝 𝑥  𝑞 𝑦  𝑟 𝑥, 𝑧, 𝑡  𝑠 𝑦  𝑘(𝑎) )
Remplacer 𝑦 par la fonction 𝑓(𝑥) :
∀𝑥 ∀𝑧 ∃𝑡 ( 𝑝 𝑓 𝑥  𝑞 𝑓 𝑥  𝑟(𝑓(𝑥), 𝑧, 𝑡)  𝑠 𝑦  𝑘(𝑎) )
Remplacer 𝑡 par la fonction 𝑔(𝑥, 𝑧) :
∀𝑥 ∀𝑧 ( 𝑝 𝑓 𝑥  𝑞 𝑓 𝑥  𝑟(𝑓(𝑥), 𝑧, 𝑔(𝑥, 𝑧))  𝑠 𝑦  𝑘(𝑎))

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
58

 Définition : Forme normale clausale

 Une formule est en forme normale clausale si elle est en forme normale de
Skolem, fermée et sa matrice est en forme normale conjonctive propositionnelle .

 Remarque : Comme toute variable est quantifiée universellement, nous pouvons


éliminer le préfixe.

 Avec les mêmes définitions de littéral et clause qu'en logique propositionnelle


nous pouvons appliquer la même convention notationnelle : une formule est
représentée par un ensemble d'ensembles de littéraux.

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
59

 Exemples :

 La formule ∃𝑥 ∃𝑦 (𝑝 𝑥  ¬𝑝(𝑦)) est en forme normale clausale.


 La formule ∀𝑥 ∃𝑦 ( (𝑝 𝑥  𝑞(𝑥, 𝑦))  𝑟(𝑧)) n'est pas en forme normale clausale
pour deux raisons :
La matrice n'est pas en forme normale conjonctive ;
Elle n'est pas fermée car la variable 𝑧 a une occurrence libre.

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
60

 Algorithme de mise en forme normale clausale

 Entrée : une formule A


 Sortie : une formule en forme normale clausale

 Début

Pour tout variable x apparaissant libre dans A faire


Fermer A existentiellement: remplacer A par ∃x A

Fin pour
Mettre A en forme normale de Skolem;
Mettre la matrice de A en forme normale conjonctive
 Fin 8

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
61

 Exemples de mise en forme normale clausale :

 Exemple 1 : Soit la formule ∃𝑥 (𝑝(𝑥) → ∀𝑥 𝑝(𝑥)) :


Mise en forme normale prénexe: ∃𝑥 ∀𝑦 (¬𝑝 𝑥  𝑝(𝑦))
Mise en forme normale de Skolem :∀𝑦 (¬ 𝑝 𝑎  𝑝(𝑦))
... qui est aussi sa forme normale clausale ;
l'ensemble de clauses associé est : { {¬ 𝑝 𝑎 , 𝑝(𝑦)} }

Logique formelle 17/11/2023


3. Théorie de preuve : normalisation
62

 Exemples de mise en forme normale clausale :

 Exemple 2 : Soit la formule : ∀𝑥 ∃𝑦 ((𝑝 𝑥  𝑞(𝑥, 𝑦))  𝑟(𝑧)) :


1. Fermer existentiellement : ∃𝑧 ∀𝑥 ∃𝑦 ((𝑝 𝑥  𝑞(𝑥, 𝑦))  𝑟(𝑧))
2. Mettre en forme normale prénexe : la formule l'est déjà
3. Mettre en forme normale de Skolem : ∀𝑥 ( 𝑝 𝑥  𝑞 𝑥, 𝑓 𝑥 𝑟 𝑎 )
4. Mettre la matrice en forme normale conjonctive :
∀𝑥 ( 𝑝 𝑥  𝑟 𝑎  𝑞 𝑥, 𝑓 𝑥 𝑟 𝑎 )
5. L'ensemble de clauses associé est : { {𝑝(𝑥) , 𝑟(𝑎)}, {𝑞(𝑥, 𝑓(𝑥)) , 𝑟(𝑎)} }

Logique formelle 17/11/2023


3. Théorie de preuve : unification
63

 Définition : unification

 L'unification est un algorithme pour déterminer les substitutions qui permettent


de rendre deux expressions identiques.
 Rappel :
Une substitution est le remplacement d'une variable par une autre expression.
On le représente comme 𝐸𝑥𝑝/𝑉𝑎𝑟.
Par exemple, 𝑏/𝑥 signifie le remplacement de la variable 𝑥 par la constante 𝑏.

Logique formelle 17/11/2023


3. Théorie de preuve : unification
64

 Définition : unifieur

 Une substitution 𝑠 unifie deux termes si elle les rend identiques : 𝑠 unifie 𝑡 et 𝑡′ si
𝑡𝑠 = 𝑡′𝑠.

 Un unifieur d'un ensemble fini d'équations entre termes 𝐸 = {𝑡1 = 𝑡1 , … , 𝑡𝑛 =
𝑡𝑛′ } est une substitution qui unifie les deux termes de chaque équation.
 Exemple d’unifieur :

Soit 𝐸 = {𝑥 = 𝑓(𝑦) , 𝑦 = 𝑧}.


Un unifieur de 𝐸 est 𝑠 = {𝑥\f(𝑎) , 𝑦\a , 𝑧\a}.
Un autre unifieur de 𝐸 est 𝑠 = {𝑥\f(𝑧) , 𝑦\z}.

Logique formelle 17/11/2023


3. Théorie de preuve : unification
65

 Définition : Unifieur le plus général

 Soient 𝑡 et 𝑡′ deux termes, et 𝑠 un unifieur de 𝑡 et 𝑡′. 𝑠 est un unifieur le plus


général (upg) si pour tout unifieur 𝑠′ de 𝑡 et 𝑡′ il existe une substitution 𝑠′′ telle
que s' = s‘’°s.
 Exemple:

Soit 𝐸 = {𝑥 = 𝑓(𝑦) , 𝑦 = 𝑧}. Un upg de 𝐸 est 𝑠 = {𝑥\f(𝑧) , 𝑦\z}. Un autre upg


de 𝐸 est 𝑠 = {𝑥\f(𝑢) , 𝑦 \u , 𝑧\u}.

 Exemple d’unifieur :
Soit 𝐸 = {𝑥 = 𝑓(𝑦) , 𝑦 = 𝑧}.
Un unifieur de 𝐸 est 𝑠 = {𝑥\f(𝑎) , 𝑦\a , 𝑧\a}.
Un autre unifieur de 𝐸 est 𝑠 = {𝑥\f(𝑧) , 𝑦\z}.
Logique formelle 17/11/2023
3. Théorie de preuve : unification
66

 Théorème :

 Si
un ensemble d'équations entre termes est unifiable alors il existe un unique upg
𝑠 (à un renommage de variables près).
 Définition : Équations résolues

 Un ensemble d'équations 𝐸 est résolu si


1. Toutes les parties gauches des équations sont des variables
2. Chaque variable apparaît au plus une fois dans 𝐸
 Soit ensemble d'équations résolu,

 La substitution associé à E est

𝐸 = {𝑥1 = 𝑡1 , … , 𝑥𝑛 = 𝑡𝑛 }.
𝐸𝑠 = {𝑥1\t1 , … , 𝑥𝑛\tn}
Logique formelle 17/11/2023
3. Théorie de preuve : unification
67

 Algorithme d'unification

 Entrée : un ensemble fini 𝐸 d'équations entre termes


 Sortie : ou bien échec, ou bien un upg de 𝐸

 Début

Tant que 𝐸 n'est pas résolu faire


 Choisir une équation de E ;

 Appliquer une des règles suivantes à cette équation :

• si elle est de la forme 𝑡 = 𝑡 alors la supprimer


• si elle est de la forme 𝑓(𝑡1, … , 𝑡𝑛) = 𝑔(𝑡′1, … , 𝑡′𝑚 ) et 𝑓 et 𝑔 sont différentes alors
échec
• si elle est de la forme 𝑓(𝑡1, … , 𝑡𝑛) = 𝑓(𝑡′1, … , 𝑡′𝑛) alors la remplacer par 𝑛 équations
𝑡1 = 𝑡′1, … , 𝑡𝑛 = 𝑡′𝑛

Logique formelle 17/11/2023


3. Théorie de preuve : unification
68

 Algorithme d'unification

• si elle est de la forme 𝑡 = 𝑥 et 𝑡 n’est pas une variable alors la remplacer par 𝑥 = 𝑡
• si elle est de la forme 𝑥 = 𝑡 et 𝑥 apparaît dans 𝑡 alors échec
• si elle est de la forme 𝑥 = 𝑡 et 𝑥 n'apparaît pas dans 𝑡 alors
 remplacer 𝑥 par 𝑡 partout ailleurs dans 𝐸

Fin tant que ;


Rendre la substitution 𝐸𝑠 associé à 𝐸
 Fin

Logique formelle 17/11/2023


3. Théorie de preuve : unification
69

 Exemples d’unification :

 Exemple 1
Soit {𝑥 = 𝑦′ , 𝑓(𝑦) = 𝑢}.
1. Inversion de 𝑓(𝑦) = 𝑢 ∶ {𝑥 = 𝑦′ , 𝑢 = 𝑓(𝑦)}
2. L'upg associé est donc : { 𝑥\y′ , 𝑢\f(𝑦) }
 Exemple 2

Soit {𝑔(𝑦) = 𝑔(𝑧) , 𝑥 = 𝑓(𝑦)}.


1. Décomposition de 𝑔(𝑦) = 𝑔(𝑧) ∶ {𝑦 = 𝑧 , 𝑥 = 𝑓(𝑦)}
2. Remplacement 𝑦\z ∶ {𝑦 = 𝑧 , 𝑥 = 𝑓(𝑧)}
3. L'upg associé est donc : {𝑦\z , 𝑥\f(𝑧)}

Logique formelle 17/11/2023


3. Théorie de preuve : unification
70

 Exemples d’unification :

 Exemple 3:
Soit {𝑥 = 𝑦 , 𝑥 = 𝑓(𝑦)}
1. Remplacement 𝑥\y : {𝑥 = 𝑦 , 𝑥 = 𝑓(𝑥)}
2. Échec par `occur check' (car 𝑥 apparaît dans 𝑡(𝑥))
 Exemple 4:

Soit {𝑥 = 𝑔(𝑦) , 𝑓(𝑥) = 𝑧 , 𝑦 = 𝑎}.


1. Remplacement 𝑦\a : {𝑥 = 𝑔(𝑎) , 𝑓(𝑥) = 𝑧 , 𝑦 = 𝑎}
2. Remplacement 𝑥\g(𝑎) : {𝑥 = 𝑔(𝑎) , 𝑓(𝑔(𝑎)) = 𝑧 , 𝑦 = 𝑎}
3. Inversion de 𝑓(𝑔(𝑎)) = 𝑧 ∶ {𝑥 = 𝑔(𝑎) , 𝑧 = 𝑓(𝑔(𝑎)) , 𝑦 = 𝑎}
4. L'upg associé est donc : {𝑥\g(𝑎) , 𝑧\f(𝑔(𝑎)) , 𝑦\a}
Logique formelle 17/11/2023
3. Théorie de preuve : méthode de résolution
71

 Définition : résolvante

Soient C et C' deux clauses telles que


𝐶 = {𝑝(𝑡1, … , 𝑡𝑛)} 𝑈 𝐷
𝐶′ = {¬ 𝑝(𝑡′1, … , 𝑡′𝑛)} 𝑈 𝐷′
il existe un unifieur le plus général s de {𝑡1 = 𝑡′1 , … 𝑡𝑛 = 𝑡′𝑛} (après avoir
éventuellement renommé les variables d'une des deux clauses)
Alors (𝐷 𝑈 𝐷′)𝑠 est une résolvante de 𝐶 et 𝐶′.

Logique formelle 17/11/2023


3. Théorie de preuve : méthode de résolution
72

 Exemple:
 Soient les deux clauses 𝐶 = 𝑝 𝑥, 𝑓 𝑦 , 𝑞 𝑥, 𝑦, 𝑧 𝑒𝑡 𝐷 =
{¬𝑝(𝑦, 𝑢) , ¬𝑝1(𝑦) , 𝑝2(ℎ(𝑢, 𝑦))}
Il faut d'abord renommer une des clauses pour que les ensembles de variables
des deux clauses soient disjoints. Disons la deuxième, qui en substituant 𝑦′ à 𝑦
devient : 𝐷′ = (𝐷){𝑦\y′} = {¬𝑝(𝑦′, 𝑢) , ¬𝑝1(𝑦′) , 𝑝2(ℎ(𝑢, 𝑦′))}
Les littéraux 𝑝(𝑥, 𝑓(𝑦)) et ¬𝑝(𝑦‟, 𝑢) sont des `candidats’ pour être
complémentaires. On forme alors l'ensemble d'équations 𝐸 = {𝑥 = 𝑦′ , 𝑓(𝑦) =
𝑢} entre les arguments des deux prédicats.
Ensuite on applique l'algorithme d'unification à 𝐸, qui rend un unifieur le plus
général 𝑠 = {𝑥\y′ , 𝑢\f(𝑦)}

Logique formelle 17/11/2023


3. Théorie de preuve : méthode de résolution
73

Alors
1. On supprime 𝑝(𝑥, 𝑓(𝑦)) de 𝐶 et ¬𝑝(𝑦, 𝑢) de 𝐷’
2. On applique s à ce qui reste dans les deux clauses
3. et on met les deux restes ensemble’ : (𝐶 − {𝑝(𝑥, 𝑓(𝑦))})𝑠 𝑈 (𝐷′ −
{¬𝑝(𝑦, 𝑢)})𝑠
La résolvante de 𝐶 et 𝐷 ainsi calculée est donc :
{𝑞(𝑦′, 𝑦, 𝑧) , ¬𝑝1(𝑦′) , 𝑝2(ℎ(𝑓(𝑦), 𝑦′))}

Logique formelle 17/11/2023


3. Théorie de preuve : méthode de résolution
74

 Définition : Facteur

 Soit 𝐶 une clause telle que


ou bien 𝐶 = {𝑝(𝑡1, … , 𝑡𝑛), 𝑝(𝑡′1, … , 𝑡′𝑛)} 𝑈 𝐷 ,
ou bien 𝐶 = {¬𝑝(𝑡1, … , 𝑡𝑛), ¬𝑝(𝑡′1, … , 𝑡′𝑛)} 𝑈 𝐷 ,
et il existe un unifieur le plus général s de {𝑡1 = 𝑡′1 , … 𝑡𝑛 = 𝑡′𝑛}. Alors (𝐶)𝑠 est
un facteur de 𝐶 .

Logique formelle 17/11/2023


3. Théorie de preuve : méthode de résolution
75

 Exemple :

 Soitla clause 𝐶 = {¬𝑝(𝑥, 𝑎) , ¬𝑝(𝑓(𝑦), 𝑦) , 𝑞(𝑦, 𝑧)}.


1. On applique l'algorithme d'unification à {𝑥 = 𝑓(𝑦) , 𝑎 = 𝑦}, qui rend un
unifieur le plus général 𝑠 = {𝑥\f(𝑎) , 𝑦\a}.
2. Alors on applique 𝑠 à 𝐶 : Un facteur de 𝐶 est donc : 𝐶𝑠 =
{𝑝(𝑓(𝑎), 𝑎) , 𝑞(𝑎, 𝑧)}
 NB : comme les clauses sont des ensembles (et non des listes), les doublons
engendrés par l'application de l'upg en 2. sont éliminés.

Logique formelle 17/11/2023


3. Théorie de preuve : méthode de résolution
76

 Définition : Réfutation

 Une réfutation des clauses 𝐶1, … , 𝐶𝑚 est une liste finie de clauses (D1, ... ,Dn) telle
que :
 𝐷 n est la clause vide {}

 pour 𝑖 = 1, … , 𝑛, la clause 𝐷𝑖 est

soit égale à une des clauses 𝐶𝑗


soit elle est résolvante de deux clauses 𝐷𝑗, 𝐷𝑘 précédant 𝐷𝑖 dans la liste
soit elle est facteur d’une clause 𝐷𝑗 précédant 𝐷𝑖 dans la liste

Logique formelle 17/11/2023


3. Théorie de preuve : méthode de résolution
77

 Corollaire :

 Pour savoir si une formule donnée 𝐴 est valide en logique des prédicats, il suffit
de:
1. Nier 𝐴 : 𝐴′ = ¬𝐴
2. Mettre 𝐴′ en forme normale clausale;
3. Répéter la production de résolvantes et facteurs jusqu’à ce que
 ou bien la clause vide est produite

 ou bien il n'est plus possible de produire des clauses nouvelles

4. si la clause vide est produite alors 𝐴 est valide ;


si il n'est plus possible de produire des clauses nouvelles alors 𝐴 n'est pas valide

Logique formelle 17/11/2023


3. Théorie de preuve : méthode de résolution
78

 Exemple :

 Soient les clauses {𝑝(𝑥) , 𝑝(𝑥′)} et {¬𝑝(𝑦) , ¬𝑝(𝑦′)}.


 Une réfutation est :

1. {𝑝(𝑥) , 𝑝(𝑥′)} clause 1


2. {¬𝑝(𝑦) , ¬𝑝(𝑦′)} clause 2
3. {𝑝(𝑥)} facteur de 1,1 et 1,2 avec {𝑥′\x}
4. {¬𝑝(𝑦)} facteur de 2,1 et 2,2 avec {𝑦′\y}
5. {} résolvante de 3,1 et 4,1 avec {𝑥\y}
 NB : remarquer qu'ici une réfutation est impossible sans utiliser la factorisation.

Logique formelle 17/11/2023

Vous aimerez peut-être aussi