Vous êtes sur la page 1sur 35

Introduction à la logique

Support de cours
Auteur original : Michel Masson
Révision et remise en page : Gauthier Picard
Adaptation HTML et révision : Antoine Zimmermann
Tronc commun informatique – Mines Saint-Étienne

Dans sa version actuelle, cette page Web est la retranscription presque fidèle du document de
Gauthier Picard (anciennement Mines Saint-Étienne), reprenant lui-même une grande partie d’un
cours de Michel Masson (anciennement Université Paris Dauphine). La traduction en HTML, la
mise en page, la correction de fautes et de problèmes typographiques ont été implémentés par An‐
toine Zimmermann. Ce document est la propriété de ses auteurs.
26/10/2021 21:16 Introduction à la logique

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 2/35
26/10/2021 21:16 Introduction à la logique

Table des matières

1. Logique des propositions


1.1 Syntaxe
1.2 Sémantique
1.3 Calcul propositionnel : méthode des tables de vérité
1.4 Calcul propositionnel : déduction axiomatique (système formel)
1.5 Calcul propositionnel : méthode des tableaux
1.6 Exercices
2. Logique des prédicats (du premier ordre)
2.1 Syntaxe
2.2 Sémantique
2.3 Calcul des prédicats : déduction axiomatique (système formel)
2.4 Calcul des prédicats : méthode des tableaux
2.5 Exercices
3. Principe de résolution
3.1 Mise sous forme prénexe
3.2 Skolémisation
3.3 Forme normale conjonctive
3.4 Résolution
3.5 Exercices
4. Programmation logique
4.1 Un cas particulier du principe de résolution
4.2 Fonctionnement de l’interpréteur Prolog
4.3 Conventions syntaxiques de Prolog

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 3/35
26/10/2021 21:16 Introduction à la logique

Préambule

L’objectif de ce cours est d’initier les élèves-ingénieurs à la modélisation logique et au raisonne‐


ment sur des systèmes logiques, en complément de leur capacité de modélisation mathématique de
réalités physiques. La modélisation logique formelle permet de mieux analyser des textes ou des
ensembles de connaissances de manière rigoureuse, en levant les ambiguïtés et en soulignant les
contradictions – notons d’ailleurs l’usage intensif de la logique formelle dans le domaines des
sciences humaines (philosophie, loi). Ce cours est une introduction à la modélisation logique de
systèmes d’information, mais également vers l’automatisation des raisonnements et des preuves de
théorèmes, qui sont des concepts importants en informatique et en intelligence artificielle, comme,
par exemple, dans la conception de systèmes experts ou dans la vérification de systèmes.
À l’issu de ce cours, les élèves auront donc acquis les outils pour : (i) traduire un énoncé (texte
libre) sous une forme logique formelle ; (ii) raisonner systématiquement sur des modèles logiques
pour déduire de nouveaux faits à partir d’un énoncé, ou bien de réfuter des discours, ou de pointer
des contradictions.
Page

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 4/35
26/10/2021 21:16 Introduction à la logique

Chapitre 1

Logique des propositions

En logique formelle, la logique des propositions est la première étape dans la définition de la logique
et du raisonnement. Dans la logique propositionnelle, on étudie les relations entre des énoncés,
que l’on va appeler propositions ou encore des formules. Elle définit les règles de déduction qui re‐
lient les propositions entre elles, sans en examiner le contenu. Ces relations peuvent être expri‐
mées par l’intermédiaire de connecteurs logiques qui permettent, par composition, de construire
des formules syntaxiquement correctes.
Dans le cadre de la logique des propositions, le calcul propositionnel (ou un système déductif)
est un ensemble de règles permettant en un nombre fini d’étapes et selon des règles explicites de
déterminer si une proposition est vraie. Un tel procédé s’appelle une démonstration. Nous verrons
également que nous pouvons établir des raisonnements plus large sur l’équivalence de formules.

1.1 Syntaxe

La logique des propositions traite des expressions construites à l’aide d’un vocabulaire 𝓥 constitué
de propositions (ou atomes) 𝓟 et d’opérateurs (ou connecteurs) 𝓒 :

𝓟  = {p, q, …}
𝓒  = {¬, ∧, ∨, →, ↔}
𝓥  = 𝓟 ⋃ 𝓒 ⋃ {(, )}

Les symboles de 𝓟 (p, q, etc.) dénotent des affirmations telles que « le moteur est en marche »,
« la vanne de sécurité est ouverte », « la cuve de liquide radioactif fuit », etc. On remplace ces affir‐
mations par des symboles neutres pour s’affranchir du sens particulier de ces phrases et pour ne se
concentrer que sur la cohérence, la validité du raisonnement, et non sur le sens des propositions
elles-mêmes.
Nous proposons ici un ensemble de connecteurs parmi d’autres existants, plus ou moins riches
— e.g. {¬, ∨}, {¬, ∧}, {¬, ∧, ∨}, etc.

Définition 1 (Expression)
Une expression est une concaténation de termes de 𝓥.

On note 𝓥* l’ensemble de toutes les expressions que l’on peut former avec le vocabulaire 𝓥.

Exemple 1 — pq(, p→, ¬∧ sont des expressions de 𝓥*.

On construit, sur 𝓥, le langage


https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ propositionnel 𝓛 0 ⊂ * (ou ensemble de formules) comme
𝓥
5/35
26/10/2021 21:16 Introduction à la logique

(i) tout atome appartient à 𝓛0 ;


(ii) si φ ∈ 𝓛0 et ψ ∈ 𝓛0 alors ¬φ, (φ ∧ ψ), (φ ∨ ψ), (φ → ψ), (φ ↔ ψ) ∈ 𝓛0 ;
(iii) il n’existe pas d’autres façons d’obtenir un élément de 𝓛0.

Seules les expressions formées à partir des règles indiquées sont dites « bien formées ».

Définition 2 (Formule)
On appelle formule ou ebf (expression bien formée) tout élément de 𝓛0.

Exemple 2 — p, (p → q), (p → ((q → r) ∨ t) sont des expressions de 𝓛0.

1.2 Sémantique

La sémantique détermine les règles d’interprétations des propositions, et permet ainsi d’attacher
des valeurs de vérité à des formules.

Définition 3 (Interprétation)
On appelle interprétation toute application I : 𝓟 ⟶ {⊤, ⊥}. ⊤ (ou Vrai ou 1) et ⊥ (ou Faux ou
0) sont appelées valeurs de vérité.

Une interprétation est une correspondance entre des éléments de 𝓛 0 et une image du monde
extérieur ; cette correspondance peut être étendue à toutes les formules de 𝓛 0 en reprenant les
lois de construction de 𝓛 0. Soit une formule η ∈ 𝓛0, l’interprétation étendue d’une formule η, no‐
tée I[η], est obtenue récursivement de la façon suivante :

si η est un atome, alors I[η] est obtenue directement par I


si η est obtenue par la loi (ii), plusieurs cas sont possibles :
– η = ¬φ alors I[η] = ⊤ ssi I[φ] = ⊥
– η = (φ ∧ ψ) alors I[η] = ⊤ ssi I[φ] = I[ψ] = ⊤
– η = (φ ∨ ψ) alors I[η] = ⊤ ssi I[φ] = ⊤ ou I[ψ] = ⊤
– η = (φ → ψ) alors I[η] = ⊤ ssi I[φ] = ⊥ ou I[ψ] = ⊤
– η = (φ ↔ ψ) alors I[η] = ⊤ ssi I[φ] = I[ψ]

Cependant, par souci de simplicité, nous utiliserons également la notation I pour désigner l’in‐
terprétation étendue I.
Les tables suivantes indiquent, pour chaque connecteur, la valeur résultante :

∧ ⊤ ⊥ ∨ ⊤ ⊥ → ⊤ ⊥ ↔ ⊤ ⊥ ¬
⊤ ⊤ ⊥ ⊤ ⊤ ⊤ ⊤ ⊤ ⊥ ⊤ ⊤ ⊥ ⊤ ⊥
⊥ ⊥ ⊥ ⊥ ⊤ ⊥ ⊥ ⊤ ⊤ ⊥ ⊥ ⊤ ⊥ ⊤

Lorsqu’on attribue des valeurs


https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ de vérité à chacune des propositions élémentaires intervenant
6/35
26/10/2021 21:16 Introduction à la logique

l’on définit un modèle de la proposition.

Exemple 3 — Soit η = (a → (b ∨ c)), soit I telle que I(a) = I(b) = ⊤, I(c) = ⊥, alors :

I(η) = I(a → (b ∨ c))
 = (I(a) → (I(b) ∨ I(c))
 = (⊤ → (⊤ ∨ ⊥))
 = (⊤ → ⊤)
 = ⊤

Voici quelques définitions et notations essentielles, reposant sur la notion de sémantique et


d’interprétation en logique des propositions. Il s’agit ici de qualifier les différentes formules selon
leur interprétation.

Définition 4 (Tautologie)
On appelle tautologie toute formule φ telle que I[φ]  = ⊤ pour toute interprétation I. On écrit
alors : ⊨ φ

Définition 5 (Contradiction)
On appelle contradiction toute formule φ telle que I[φ] = ⊥ pour toute interprétation I.

Définition 6 (Satisfiabilité)
Une formule φ est dite satisfiable s’il existe au moins une interprétation I telle que I[φ] = ⊤.

Définition 7 (Conséquence logique)


On note φ ⊨ ψ (ψ conséquence logique de φ) si pour toute interprétation I telle que I[φ] = ⊤
alors I[ψ] = ⊤.

Définition 8 (Équivalence logique)


On note φ ≡ ψ (ψ équivalent logiquement à φ) ssi φ ⊨ ψ et ψ ⊨ φ.

Quelques équivalences

Pour toutes formules φ et ψ de 𝓛0, on a les résultats suivants :

¬¬φ ≡ φ (1.2.1)
¬(φ ∧ ψ) ≡ (¬φ ∨ ¬ψ) (1.2.2)
¬(φ ∨ ψ) ≡ (¬φ ∧ ¬ψ) (1.2.3)
ρ ∧ (φ ∨ ψ) ≡ ((ρ ∧ φ) ∨ (ρ ∧ ψ)) (1.2.4)
ρ ∨ (φ ∧ ψ) ≡ ((ρ ∨ φ) ∧ (ρ ∨ ψ)) (1.2.5)
(φ ∧ ψ) ≡ (ψ ∧ φ) (1.2.6)
(φ ∨ ψ) ≡ (ψ ∨ φ)
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ (1.2.7) 7/35

(φ → ψ) ≡ (¬φ ∨ ψ) (1.2.8)
26/10/2021 21:16 Introduction à la logique

Pour démontrer ces équivalences, il est possible d’utiliser la méthode des tables de vérité.

Forme normale conjonctive

Il peut être certaines fois nécessaire de s’intéresser à des formules ayant des formes particu‐
lières (standardisée), notamment dans le cadre de la déduction automatique et de la programma‐
tion logique, où ces formules devront être interprétable par un ordinateur.

Définition 9 (Forme normale conjonctive)


φ  ∈  𝓛0 est sous forme normale conjonctive (ou FNC) ssi φ  = (C1  ∧  …  ∧  Cn), avec Ci  =
(Li1 ∨ … ∨ Lip) et Lij = a, a ∈ 𝓟 ou Lij = ¬a, a ∈ 𝓟. Les Lij sont appelés des littéraux.

D’autres formes normales existent, notamment la forme normale disjonctive (FND).

Théorème 1
Pour toute formule φ  ∈  𝓛0, il existe une formule φc sous forme normale conjonctive telle que
φ ≡ φc

1.3 Calcul propositionnel : méthode des tables de vérité

Cette méthode permet d’obtenir facilement des démonstrations dans 𝓛 0. En effet, une interpréta‐
tion I associe à chaque élément la valeur ⊤ ou ⊥ ; une propriété faisant intervenir n éléments offre
2n interprétations envisageables. On obtient alors une démonstration par exhaustivité. Une telle
démarche peut être utilisée pour montrer qu’une formule est une tautologie (la formule doit
prendre la valeur ⊤ pour toutes les interprétations) ou pour montrer une équivalence logique.
Par exemple, l’équivalence logique (1.2.4) peut être établie de la façon suivante :

ρ φ ψ (φ ∨ ψ) (ρ ∧ (φ ∨ ψ)) (ρ ∧ φ) (ρ ∧ ψ) ((ρ ∧ φ) ∨ (ρ ∧ ψ))


⊤ ⊤ ⊤ ⊤ ⊤ ⊤ ⊤ ⊤
⊤ ⊤ ⊥ ⊤ ⊤ ⊤ ⊥ ⊤
⊤ ⊥ ⊤ ⊤ ⊤ ⊥ ⊤ ⊤
⊤ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥
⊥ ⊤ ⊤ ⊤ ⊥ ⊥ ⊥ ⊥
⊥ ⊤ ⊥ ⊤ ⊥ ⊥ ⊥ ⊥
⊥ ⊥ ⊤ ⊤ ⊥ ⊥ ⊥ ⊥
⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥

Les deux membres de l’expression (1.2.4) prennent les mêmes valeurs de vérité, il y a donc
équivalence logique (colonnes grisées).
Malheureusement, cette méthode est systématique et trés coûteuse. Une alternative à cette
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 8/35
mé‐
26/10/2021 21:16 Introduction à la logique

1.4 Calcul propositionnel : déduction axiomatique (système formel)

Un système formel est défini par un tuple 〈 𝓥 〉


, 𝓔, 𝓐, 𝓡 , tel que :

𝓥 est un ensemble de symboles


𝓔 est un ensemble d’expressions bien formées dans 𝓥*
𝓐 est un ensemble d’axiomes (𝓐 ⊂ 𝓔)
𝓡 est un ensemble de règles de déduction de la forme :
ri : f1, f2, …, fn ⊢ g avec fi, g ∈ 𝓔

Un système formel est un mécanisme abstrait permettant d’engendrer un ensemble d’ebf à partir
des axiomes en utilisant les règles.

Définition 10 (Déduction ou preuve)


Soit un système formel SF, on appelle déduction (ou preuve) de cp à partir de h1, h2, …, hn dans
SF, et on note

h1, h2, …, hn ⊢ cp

toute suite c1, c2, …, cp telle que pour i = 1, …, p

ou bien ci est un axiome (ci ∈ 𝓐)


ou bien ci est une des hypothèses (hk)
ou bien ci peut être obtenue par application d’une règle ri telle que
ci1, ci2, …, cik ⊢ ci avec i1, …, ik < i

On peut assimiler une déduction à une forme de démonstration de l’expression cp à l’aide des
hypothèses hi ; un cas particulier apparaît lorsque la démonstration peut être établie sans utilisa‐
tion d’hypothèses.

Définition 11 (Théorème)
Étant donné un système formel SF, t est un théorème de SF et on note ⊢ t si t peut être déduit sans
hypothèse.

Un système formel pour la logique des propositions

Définissons un système formel, avec son axiomatique et ses règles propres, dans le cadre de la
logique des propositions, afin d’obtenir un système de preuve. Ce système est un exemple parmi
d’autres.

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 9/35
26/10/2021 21:16 Introduction à la logique

Définition 12 (Système formel pour 𝓛0)


Soit SF0 le système formel suivant (où A, B et C désignent des variables pouvant être remplacées
par toute expression de 𝓛0) :

𝓥  = {a, b, c, …, ¬, →, (, )}
𝓔 est l’ensemble d’expressions bien formées dans 𝓥*
𝓐  = {A1, A2, A3} avec :
– A1 : (A → (B → A))
– A2 : ((A → (B → C)) → ((A → B) → (A → C)))
– A3 : ((¬A → ¬B) → (B → A))
𝓡  = {RMP} contient une unique règle (le modus ponens) :
– RMP : A, (A → B) ⊢ B

Exemple 4 — Montrons que ⊢ a → a. (a → a) est un théorème si on peut construire une déduction c1,
…, cp, avec cp = (a → a).

c1 = ((a → ((b → a) → a)) → ((a → (b → a)) → (a → a))) Axiome A2 avec A = a, B = (b → a), C = a


c2 = (a → ((b → a) → a)) Axiome A1 en posant A = a, B = (b → a)
c3 = ((a → (b → a)) → (a → a)) Règle RMP sur c2 et c1
c4 = (a → (b → a)) Axiome A1 en posant A = a, B = b
c5 = (a → a) Règle RMP sur c4 et c3

Voici quelques résultats clés en logique des propositions.

Théorème 2 (Théorème de la déduction)


Pour tout φ1, …, φn, ψ ∈ 𝓛0 :

φ1, …, φn–1 ⊢ (φn → ψ) ssi φ1, …, φn ⊢ ψ

Il y a équivalence entre être une tautologie et être prouvable, comme l’énoncent les théorèmes
suivants.

Théorème 3 (Théorème de la correction en calcul propositionnel)


Dans SF0, pour tout φ ∈ 𝓛0, ⊨ φ si  ⊢ φ.

Théorème 4 (Théorème de la complétude en calcul propositionnel)


Dans SF0, pour tout φ ∈ 𝓛0, ⊢ φ si  ⊨ φ.

Ces résultats expriment que l’ensemble des tautologies correspond à l’ensemble des théorèmes
établis dans le cadre du système
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ formel SF0. Ce système formel permet de construire des10/35
déduc‐
26/10/2021 21:16 Introduction à la logique

des expressions prenant la valeur ⊤ (tautologies). SF0 est une caractérisation syntaxique des tauto‐
logies de 𝓛0.

1.5 Calcul propositionnel : méthode des tableaux

Le système formel étudié dans la section précédente permet d’obtenir des déductions dont le résul‐
tat est l’ensemble des tautologies de la logique des propositions. La méthode des tableaux (ou des
arbres de vérité) est une autre façon de construire des déductions ; sa manipulation plus intuitive
permet d’obtenir plus facilement des déductions. Par contre son aspect graphique en limite l’usage
à des expressions simples.

Définition 13 (Arbre de déduction)


On appelle arbre de déduction, tout arbre dont les sommets sont des ebf de 𝓛 0 et dont toutes les
branches sont fermées.

Définition 14 (Branche fermée)


Une branche (d’un arbre de déduction) est fermée si elle contient φ et ¬φ (φ étant un atome ou
ebf de 𝓛0).

Principe et règles

Une déduction de φ à partir de h1, h2, …, hn notée h1, h2, …, hn ⊢ φ peut être obtenue en mon‐
trant que l’arbre de racine : h1, h2, …, hn, ¬φ est fermé. La fermeture de l’arbre (au début réduit à
sa racine) est obtenue pas à pas par l’application des règles suivantes :

(φ ∨ ψ) ¬(φ ∧ ψ) (φ → ψ)

φ ψ ¬φ ¬ψ ¬φ ψ
(R∨) (R¬∧) (R→)

(φ ∧ ψ) ¬(φ ∨ ψ) ¬(φ → ψ)

φ ¬φ φ
(R∧) (R¬∨) (R¬→)
ψ ¬ψ ¬ψ

¬¬φ (φ ↔ ψ) ¬(φ ↔ ψ)

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 11/35
φ φ ¬φ φ ¬φ
(R¬¬) (R↔) (R¬↔)
26/10/2021 21:16 Introduction à la logique

Exemple 5 — Montrons que l’expression (a → (b → a)) est un théorème — i.e. ⊢ (a → (b → a)).

¬(a → (b → a))

(R¬→)

a
¬(b → a)

(R¬→)

b
¬a

L’unique branche de l’arbre est fermée grâce à la présence de a et ¬a.

Remarque — Cette méthode est directement transcriptible en un algorithme de déduction et de


raisonnement automatique.

1.6 Exercices

Exercice 1.6.1 — En utilisant les atomes S (le soleil brille), P (il pleut), B (il bruine), A (il y a
un arc en ciel), O (il a un vent d’Ouest), E (il y a du vent d’Est), traduire dans la logique des pro‐
positions 𝓛0 les énoncés suivants :

(a) S’il pleut et que le soleil brille en même temps, alors il y a un arc en ciel,
(b) Si le vent d’ouest amène la pluie, on n’a jamais vu qu’un vent d’est soit porteur de
pluie,
(c) La bruine est une forme de pluie.

Exercice 1.6.2 — Représenter dans le formalisme de la logique des propositions les théorèmes
de géométrie suivants :
(a) Si un triangle est équilatéral alors il est isocèle.
(b) Un triangle rectangle n’est jamais équilatéral.
(c) Un carré est à la fois un parallélogramme et un rectangle.
(d) Un losange n’est ni un quadrilatère rectangle ni un triangle.
(e) Deux droites coplanaires sont soit sécantes, soit parallèles.
(f) Deux droites ne peuvent être à la fois sécantes et parallèles.

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 12/35
26/10/2021 21:16 Introduction à la logique

Exercice 1.6.3 — Formaliser dans 𝓛0 les propositions suivantes :

(a) Si Alice et Julie viennent à Paris, Zoé viendra aussi ;


(b) Si Julie vient à Paris, Alice aussi ;
(c) Julie ou Zoé, l’une des deux au moins, viendra à Paris.
Alice viendra-t-elle à Paris ? Et Julie ? Et Zoé ?

Exercice 1.6.4 — Montrer que ((p → r) ∧ (q ↔ s) ∧ (r ↔ q) ∧ p) ⊨ s.

Exercice 1.6.5 — Montrer que :


((¬q ∨ ¬s) ∧ (p → s) ∧ (¬p → (r → (q ∧ s))) ∧ ((q ∧ ¬s) → (¬r → (q ∧ p)))) ⊨ ¬q.

Exercice 1.6.6 — Construire dans SF0 la preuve de ⊢ ((a → b) → ((b → c) → (a → c))).

Exercice 1.6.7 — Construire dans SF0 la preuve de ⊢ (¬a → (a → b)).

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 13/35
26/10/2021 21:16 Introduction à la logique

Exercice 1.6.8 — Lors de ses aventures au pays des merveilles rapportées par Lewis Carroll,
Alice est souvent accompagnée par le chat de Cheshire. Ce félin énigmatique s’exprime sous la
forme d’affirmations logiques qui sont toujours vraies. Alice se trouve dans un corridor dont
toutes les portes à sa taille sont fermées. La seule porte ouverte est nettement trop petite pour
qu’elle puisse l’emprunter. Une étagère est fixée au-dessus de cette porte. Le chat dit alors à Ali‐
ce : « L’un des flacons posés sur cette étagère contient un liquide qui te permettra de prendre une taille
plus adéquate. Mais attention, les autres flacons peuvent contenir un poison fatal. » Trois flacons sont
effectivement posés sur l’étagère. Le premier est rouge, le second jaune, le troisième bleu. Une
étiquette est collée sur chaque flacon. Alice lit l’inscription figurant sur chaque étiquette :

Flacon rouge : le flacon jaune contient un poison ; le bleu n’en contient pas ;
Flacon jaune : si le flacon rouge contient un poison, alors le bleu aussi ;
Flacon bleu : je ne contiens pas de poison, mais au moins l’un des deux autres si.

Nous noterons R, J et B les variables propositionnelles correspondant au fait que les flacons
rouge, jaune et bleu contiennent un poison. Nous noterons IR, IJ et IB les propositions correspon‐
dant aux inscriptions sur les flacons rouge, jaune et bleu.
On résoudra les questions suivantes d’abord en utilisant une table de vérité, puis en utilisant
des simplifications et règles d’équivalence des formules.
(a) Exprimez les formules IR, IJ et IB sous la forme de formules dépendant de R, J et B.
(b) Les inscriptions sur les trois flacons sont-elles compatibles ?
(c) Dans le cas où aucun des trois flacons ne contient un poison, est-ce qu’une ou plusieurs
inscriptions sont fausses ?
(d) Si les trois inscriptions sont vraies, est-ce qu’un ou plusieurs flacons contiennent un
poison ?
(e) Si seuls les flacons ne contenant pas un poison ont une inscription vraie, est-ce qu’un
ou plusieurs flacons ne contiennent pas un poison ?

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 14/35
26/10/2021 21:16 Introduction à la logique

Chapitre 2

Logique des prédicats (du premier ordre)

Le calcul des prédicats du premier ordre, ou calcul des relations, ou logique du premier ordre, ou tout
simplement calcul des prédicats est une formalisation du langage des mathématiques proposée par
les logiciens de la fin du XIXe siècle et du début du XXe siècle.
Le calcul des propositions (vu en section précédente) est la partie du calcul des prédicats qui
concerne ce qui ne contient pas les notions de variables, de fonctions et de prédicats et donc pas
les quantificateurs ∀ et ∃. Il sert à formaliser essentiellement les déductions du calcul des
prédicats.

2.1 Syntaxe

Comme pour la logique des propositions, nous allons définir l’ensemble des formules de la logique
des prédicats, noté 𝓛 1 à partir d’un vocabulaire, noté 𝓥 , composé de symboles de variables
(𝓥ar), de symboles de fonctions (𝓕onc), de symboles de prédicats (𝓟red), de symboles de
constantes (𝓒onst), de symboles de connecteurs (𝓒onnect), de symboles de quantificateurs
(𝓠uant) et de parenthèses :

𝓥 ar = {x, y, y, …}
𝓕 onc = {f, g, h, …}
𝓟 red = {P, Q, R, …}
𝓒 onst = {c1, c2, …}
𝓒 onnect = {¬, ∧, ∨, →, ↔}
𝓠 uant = {∀, ∃}

𝓥  = 𝓥ar ⋃ 𝓕onc ⋃ 𝓟red ⋃ 𝓒onst ⋃ 𝓒onnect ⋃ 𝓠uant ⋃ {(, )}

Chaque symbole de fonction de 𝓕 onc ou de prédicat de 𝓟 red a une arité qui détermine le
nombre d’arguments ou d’objets auxquels il est appliqué. Par exemple, le prédicat H pour « est un
homme » a une arité d’un (on dit qu’il est unaire), tandis que le prédicat P pour « est le père de » a
une arité de deux (on dit qu’il est binaire)1.
Nous construisons alors l’ensemble des termes 𝓣 comme suit :

(i) si c ∈ 𝓒onst, alors c ∈ 𝓣 ;


(ii) si x ∈ 𝓥ar alors x ∈ 𝓣 ;
(iii) si t1, …, tn ∈ 𝓣 et f ∈ 𝓕onc d’arité n alors f(t1, …, tn) ∈ 𝓣 ;
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 15/35
(iv) il n’existe pas d’autre méthode pour obtenir des éléments de 𝓣.
26/10/2021 21:16 Introduction à la logique

Nous construisons également l’ensemble des atomes 𝓐 comme suit :

(i) si t1, …, tn ∈ 𝓣, P ∈ 𝓟red d’arité n alors P(t1, …, tn) ∈ 𝓐;


(ii) il n’existe pas d’autre méthode pour obtenir des éléments de 𝓐.

On construit alors, comme pour la logique des propositions, le langage des prédicats 𝓛1 (ou en‐
semble de formules) comme étant le plus petit ensemble obtenu par les lois suivantes :

(i) 𝓐 ⊂ 𝓛1
¬α1 ∈ 𝓛1

(α1 ∧ α2) ∈ 𝓛1

(α1 ∨ α2) ∈ 𝓛1

(ii) si α1, α2 ∈ 𝓛1 alors (α1 → α2) ∈ 𝓛1

(α1 ↔ α2) ∈ 𝓛1

∀x α1 ∈ 𝓛1

∃x α1 ∈ 𝓛1
(iii) il n’existe pas d’autre méthode pour obtenir un élément de 𝓛1.

Exemple 6 — Les expressions suivantes sont des éléments de 𝓛1 :

P(x,f(y))
∀x (P(x,y) ∧ ∃x Q(y))
∀x R(x,y)
∀x ∀y ∀z ((P(x,y) ∧ P(y,z)) → P(x,z))

Définition 15 (Portée d’un quantificateur)


Soit la formule Qxφ ∈ 𝓛1, φ désigne la portée du quantificateur Qx, avec Q ∈ 𝓠uant.

Définition 16 (Variable libre/liée)


Soit une formule φ ∈ 𝓛1.

x est liée dans φ ssi x apparaît dans la portée d’un quantificateur Qx (Q ∈ 𝓠uant)
x est libre dans φ ssi x apparaît hors de la portée d’un quantificateur Qx (Q ∈ 𝓠uant)

On observera qu’une variable peut être libre et liée à la fois, comme dans la formule suivante

(P(x) → (∀x (R(x)))

Définition 17 (Formule close)


Une formule φ ∈ 𝓛1 est close ssi elle ne comporte aucune variable libre.

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 16/35
26/10/2021 21:16 Introduction à la logique

2.2 Sémantique

Nous allons maintenant définir la sémantique de la logique des prédicats.

Définition 18 (Interprétation en logique des prédicats)


On définit une interprétation I par un ensemble non vide ΩI appelé univers (ou domaine) de l’in‐
terprétation, tel que :

pour chaque symbole de constante c, I[c] = cI ∈ ΩI

pour chaque symbole de fonction n-aire f, I[f] : ΩIn ⟶ ΩI

pour chaque symbole de prédicat m-aire P, I[P] : ΩIm ⟶ {⊥,⊤}

À l’aide d’une interprétation, on peut définir la valeur de vérité associée à une formule. Cepen‐
dant, une formule du premier ordre peut contenir des variables libres et selon la valeur que l’on
affecte à ces variables, la valeur de vérité de la formule change. Par exemple, le prédicat Inf(x,y),
représentant la relation x < y, est parfois vrai et parfois faux selon la valeur associée à x et y.
Pour cela, on associe à une interprétation une valuation ν :  𝓥ar  ⟶ ΩI définie sur les variables
et à valeur dans l’univers d’interprétation pour définir la valeur de vérité d’une formule.

Définition 19 (Valuation)
Une valuation ν : 𝓥ar ⟶ ΩI est une application de l’ensemble des variables dans ΩI.

On notera alors Iν[η] pour indiquer la valeur de vérité de η vis-à-vis de l’interprétation I et de


la valuation ν. Nous définissons cela inductivement.
On étend l’interprétation des symboles à l’interprétation des termes de la façon suivante :

si x est une variable, alors Iν[x] = ν(x) ;


si c est un symbole de constante (resp., f un symbole de fonction, P un symbole de prédicat),
alors Iν[c] = I[c] (resp., Iν[f] = I[f], Iν[P] = I[P]) ;
si Iν[t1], …, Iν[tn] sont des interprétations de termes, alors Iν[f(t1, …, tn)] = I[f](Iν[t1], …,
Iν[tn]).

Alors, la valeur de vérité d’une formule est :

si η = P(t1, …, tn) alors Iν[η] = ⊤ ssi I[P](Iν[t1], …, Iν[tn]) = ⊤ ;


si η = ¬φ alors Iν[η] = ⊤ ssi Iν[φ] = ⊥ ;
si η = (φ ∧ ψ) alors Iν[η] = ⊤ ssi Iν[φ] = Iν[ψ] = ⊤ ;
si η = (φ ∨ ψ) alors Iν[η] = ⊤ ssi Iν[φ] = ⊤ ou Iν[ψ] = ⊤ ;
si η = (φ → ψ) alors Iν[η] = ⊤ ssi Iν[φ] = ⊥ ou Iν[ψ] = ⊤ ;
si η = (φ ↔ ψ) alors Iν[η] = ⊤ ssi Iν[φ] = Iν[ψ].
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 17/35
Jusqu’ici, la sémantique ressemble beaucoup à celle de la logique propositionnelle. Introdui‐
26/10/2021 21:16 Introduction à la logique

si φ = ∃x ψ, alors Iν[φ] = ⊤ ssi il existe dans ΩI un élément e tel que, si on affecte e à la va‐
riable x dans la formule ψ, c’est-à-dire, on utilise une valuation η identique à ν sauf pour la
variable x, alors Iη[ψ] = ⊤.
si φ = ∀x ψ, alors Iν[φ] = ⊤ ssi pour tout les éléments e de ΩI, si on affecte e à la variable x
dans la formule ψ, (on utilise une valuation η), alors Iη[ψ] = ⊤.

Exemple 7 — Illustrons cette notion à l’aide de la formule suivante : φ = ∀x ∃y P(x,y).


Définissons l’interprétation I1 en posant ΩI1 = ℕ et en associant à P(x,y) la relation x < y. Alors la
formule s’interprète de la manière suivante : « Pour tout x entier, on peut trouver un entier y tel que y
soit supérieur à x ». Cette assertion est manifestement vraie, on notera alors I1[φ] = ⊤.
Par contre, si nous reprenons cette même formule avec l’interprétation I2 où I2 = ℕ et où la relation
x < y est associée à P(x,y), l’interprétation devient : « Pour tout x entier, on peut trouver un entier y
tel que y < x ». Cette assertion est fausse — I2[φ] = ⊥ (un contre-exemple est obtenu en prenant la va‐
leur 0 pour x).

Ainsi, comme nous l’avons vu pour la logique des propositions, une formule peut prendre la va‐
leur ⊤ ou ⊥ en fonction de son interprétation. Il faut tenir compte de l’existence d’une ou plusieurs
variables libres, dans ce cas une interprétation ne permettra d’obtenir une valeur de vérité que si
la valeur de la (des) variable(s) libre(s) est précisée.

Exemple 8 — Soit ψ(x) = ∃y P(x,y). Reprenons l’interprétation I2 de l’exemple précédent, I2[ψ(7)] =


⊤, I2[ψ(0)] = ⊥.

Remarque — Étant donnée une interprétation I, alors toute formule close de 𝓛 1 prend la valeur
⊤ ou ⊥ pour cette interprétation (aucune valeur de variable libre n’est à préciser).

Définition 20 (Validité universelle, adaptée de la définition 4)


Soit φ ∈  𝓛1 une formule close, elle est dite universellement valide (ou logiquement valide) si
elle prend la valeur ⊤ pour toute interprétation I. On écrit alors : ⊨ φ

Les définitions concernant la conséquence logique (Déf. 7) et l’équivalence logique (Déf. 8) res‐
tent inchangées. Les exemples précédents montrent qu’à l’inverse de ceux étudiés dans le cadre de
la logique des propositions, il n’existe pas de méthode algorithmique comparable à la méthode des
tables de vérité pour établir des résultats relatifs à la conséquence ou à l’équivalence logique. En
effet, une telle méthode devrait envisager exhaustivement toutes les interprétations possibles d’une
formule ; ceci est impossible dans le cas où on fait correspondre à Ω un ensemble infini. Une mé‐
thode syntaxique (e.g. utilisation d’un système formel) est donc nécessaire pour établir des résul‐
tats du type ⊨ φ ou φ ⊨ ψ.

2.3 Calcul des prédicats : déduction axiomatique (système formel)

Dans la logique des propositions,


https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ l’ensemble des tautologies correspond aux théorèmes du système
18/35
26/10/2021 21:16 Introduction à la logique

sant le système formel SF1, défini comme suit.

Un système formel pour la logique des prédicats

De la même manière que nous l’avons fait pour la logique des propositions, nous définissons un
système formel pour la logique des prédicats, en ajoutant deux nouveaux axiomes et une règle.

Définition 21 (Système formel pour 𝓛1)


Soit SF1 le système formel suivant (où A(.), B, C peuvent être remplacées par toute expression de
𝓛 1) :

𝓥  = 𝓥ar ⋃ 𝓕onc ⋃ 𝓟red ⋃ 𝓒onst ⋃ 𝓒onnect ⋃ 𝓠uant ⋃ {(, )}


𝓔 est l’ensemble d’expressions bien formées dans 𝓥*
𝓐  = {A1, A2, A3} ⋃ {A4, A5} avec A1, A2 et A3 identiques à SF0 et :
– A4 : (∀x A(x) → A(t)) avec t terme libre pour x
– A5 : ((B → C) → (B → ∀x C))
𝓡  = {RMP, RG} avec :
– RMP : B, (B → C) ⊢ C (modus ponens)
– RG : B ⊢ ∀x B (généralisation)

Remarque — Les définitions 10 et 11 restent valables pour SF1. Les quantifiateurs ∀ et ∃ sont liés
par les équivalences :

∃x φ ≡ ¬∀x ¬φ (2.3.1)
∀x φ ≡ ¬∃x ¬φ (2.3.2)
¬∀x φ ≡ ∃x ¬φ (2.3.3)
¬∃x φ ≡ ∀x ¬φ (2.3.4)

Exemple 9 — Montrons que (∀x∀y P(x,y))  ⊢  (∀z P(z,z)). Il faut construire une déduction c1, …, cp
avec cp = ∀z P(z,z).

c1 = ∀x∀y P(x,y) Hypothèse


c2 = (∀x∀y P(x,y) → ∀y P(z,y)) Axiome A4 avec A(x) = ∀y P(x,y)
c3 = ∀y P(z,y) RMP sur c1 et c2
c4 = (∀y P(z,y) → P(z,z)) Axiome A4 avec A(x) = P(z,x)
c5 = P(z,z) RMP sur c3 et c4
c6 = ∀z P(z,z) RG sur c5

Attention : la variable x apparaissant à la fois dans la déduction et dans l’axiome, il y a risque de


confusion. Ces variables étant muettes, on peut sans risque les renommer.
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 19/35
26/10/2021 21:16 Introduction à la logique

Quelques équivalences

On peut montrer dans SF1 les résultats suivants (par la méthode des tableaux, voir plus bas),
sachant que les équivalences obtenues pour la logique des propositions restent vraies.
Lois de distribution des quantificateurs :

∀x (φ ∧ ψ) ≡ (∀x φ ∧ ∀x ψ) (2.3.5)
∃x (φ ∨ ψ) ≡ (∃x φ ∨ ∃x ψ) (2.3.6)

Lois de permutation des quantificateurs de même sorte :

∀x∀y φ ≡ ∀y∀x φ (2.3.7)
∃x∃y φ ≡ ∃y∃x φ (2.3.8)

Théorème 5 (Théorème de la complétude (et de la correction) — Gödel, 1929)


Pour tout φ ∈ 𝓛1, ⊨ φ ssi  ⊢ φ.

Ce résultat est analogue à celui obtenu pour la logique des propositions (Théorèmes 3 et 4). SF1
constitue une caractérisation des formules universellement valides.

2.4 Calcul des prédicats : méthode des tableaux

La méthode étudiée précédemment peut être adaptée au cadre de la logique des prédicats. Les dé‐
finitions 13 et 14 restent valables, par contre il faut ajouter 4 nouvelles règles aux 9 règles déjà
définies.

∀x φ(x)
∃x φ(x)

φ(a)
φ(a) φ(b) ... φ(u)
φ(b)
(R∃) (R∀)
...
avec a, b, … constantes ou variable libres déjà avec a, b, … constantes ou variable libres déjà
utilisées dans la branche, et u nouvelle constante utilisées dans l'arbre

¬∀x φ(x) ¬∃x φ(x)

∃x ¬φ(x) ∀x ¬φ(x)
(R¬∀) (R¬∃)

Exemple 10 — Montrons que H1, H2 ⊢ C avec :

(H1) ∀x∀z∃y∀t ((P(x,y) ∧ Q(y,z)) → P(z,t))
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 20/35
(H2) ∃x∀y P(x,y)
26/10/2021 21:16 Introduction à la logique

Cela revient à montrer que l’arbre de racine H1, H2, ¬C est fermé. L’application des règles R∃ et R¬∀
sur C laisse un seul quantificateur existentiel. La racine comprenant alors 3 variables quantifiées existen‐
tiellement, trois constantes différentes — au minimum — devront être utilisées.

(I) ∀x∀z∃y∀t ((P(x,y) ∧ Q(y,z)) → P(z,t))


(II) ∃x∀y P(x,y)
(III) ¬(∀z∃x∃y (Q(x,y) → P(z,x)))

(R¬∀) sur (III)

(IV) ∃z∀x∀y ¬(Q(x,y) → P(z,x))


(R∃) sur (II)

(V) ∀y P(a,y)

(R∃) sur (IV)

∀x∀y ¬(Q(x,y) → P(a,x)) (VI) ∀x∀y ¬(Q(x,y) → P(b,x))


(R∀) deux fois (R∀) deux fois sur (I)

¬(Q(a,a) → P(a,a)) ∃y∀t (P(a,y) ∧ Q(y,b)) → P(b,t))


(R¬→)
(R∃)
Q(a,a)
¬P(a,a)
∀t (P(a,a) ∧ Q(a,b)) → P(b,t)) ∀t (P(a,b) ∧ Q(b,b)) → P(b,t)) ∀t (P(a,c) ∧ Q(c,b)) → P(b,t))
(R∀) sur (V)
(R∀) (R∀) (R∀)
P(a,a)
⊗ (P(a,a) ∧ Q(a,b)) → P(b,a)) (P(a,b) ∧ Q(b,b)) → P(b,a)) (P(a,c) ∧ Q(c,b)) → P(b,a))

(R→) (R→) (R→)

¬(P(a,a) ∧ Q(a,b)) P(b,a) ¬(P(a,a) ∧ Q(b,b)) P(b,a) ¬(P(a,c) ∧ Q(c,b)) P(b,a)


(R∀) et (R¬→) sur (VI) (R¬→) sur (VI) (R¬→) su
(R¬∧) (R¬∧) (R¬∧)
Q(a,a) Q(a,a)
¬P(a,a) ¬Q(a,b) ¬P(a,b) ¬Q(b,b) ¬P(a,c) ¬Q(c,b) Q(a,a)
¬P(b,a) ¬P(b,a))
(R∀) sur (V) (R¬→) sur (VI) (R∀) sur (V) (R¬→) sur (VI) (R∀) sur (V) (R¬→) sur (VI) ¬P(b,a))
⊗ ⊗

P(a,a) ¬(Q(a,b) → P(b,a)) P(a,b) ¬(Q(b,b) → P(b,b)) P(a,c) ¬(Q(c,b) → P(b,c))
⊗ ⊗ ⊗
(R¬→) (R¬→) (R¬→)

Q(a,b) Q(b,b) Q(c,b)


¬P(b,a) ¬P(b,b) ¬P(b,c)
⊗ ⊗ ⊗

Remarque — Comme pour la logique des propositions, cette méthode est directement transcrip‐
tible en un algorithme de déduction et de raisonnement automatique.

2.5 Exercices

Exercice 2.5.1 — Traduire dans le langage des prédicats du premier ordre les phrases
suivantes :
(a) Jean suit un cours.
(b) Un logicien a été champion du monde de cyclisme.
(c) Un entier naturel est pair ou impair.
(d) Un enseignant-chercheur a toujours un nouveau sujet à étudier.
(e) Dans un triangle isocèle une médiane est également hauteur.

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 21/35
26/10/2021 21:16 Introduction à la logique

Exercice 2.5.2 — Traduire dans le langage des prédicats du premier ordre les phrases
suivantes :
(a) Tous les hommes sont méchants.
(b) Seulement les hommes sont méchants.
(c) Il existe des hommes méchants.
(d) Il existe un homme qui n’est pas méchant.
(e) Il n’existe pas d’homme méchant.
(f) Il existe un homme qui aime toutes les femmes.
(g) Chaque chat connaît un chien qui le déteste.
(h) Tous les poissons, sauf les requins, sont gentils avec les enfants.
(i) Tous les oiseaux ne peuvent pas voler.
(j) Chaque personne aime quelqu’un et personne n’aime tout le monde, ou bien quelqu’un
aime tout le monde et quelqu’un n’aime personne.
(k) Il y a des gens que l’on peut rouler tout le temps et quelquefois on peut rouler tout le
monde, mais on ne peut pas rouler tout le monde à chaque fois.

Exercice 2.5.3 — Traduire dans le langage des prédicats du premier ordre les phrases
suivantes :
(a) Toutes les personnes qui entrent en voiture dans la faculté doivent avoir une carte ou
être accompagnées par un membre du personnel.
(b) Certains étudiants entrent en voiture dans la faculté sans être accompagnés de per‐
sonnes qui ne sont pas des étudiants.
(c) Aucun étudiant n’a de carte.

Exercice 2.5.4 — Traduire dans le langage des prédicats du premier ordre les phrases
suivantes :

Une conjecture est un théorème qui ne peut être démontré par aucun mathématicien. Il
existe des mathématiciens qui ne démontrent pas tous les théorèmes. Si un mathématicien
démontre une conjecture alors il se trompe. Si quelqu’un démontre un théorème sans se
tromper, alors ce n’est pas une conjecture.

Exercice 2.5.5 — Traduire dans le langage des prédicats du premier ordre les phrases
suivantes :

Il existe des PC non connectés en réseau. Dans les grandes entreprises, tous les PC sont
connectés au réseau interne. Il existe dans chaque grande entreprise au moins un PC
connecté au réseau interne et relié à Internet.

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 22/35
26/10/2021 21:16 Introduction à la logique

Exercice 2.5.6 — Traduire dans le langage des prédicats du premier ordre les phrases
suivantes :

Toute personne possédant un PC et un modem peut utiliser Internet. Il existe des personnes
connectées en réseau, qui ne peuvent pas utiliser Internet. Nul ne possède de modem s’il ne
possède pas de PC. Tout utilisateur d’Internet est soit connecté à un réseau, soit possesseur
d’un PC. Il n’est pas possible d’utiliser Internet sans posséder de PC.

Exercice 2.5.7 — Soient les expressions dans 𝓛1 :

(A1) ∃z∀x∀y (F(x,y) → G(z,x))
(A2) ∀x∀y∃z (¬F(y,z) → E(x))
(A3) ∃z ¬E(z)
(C) ∃x G(x,x)

Montrer, en utilisant la méthode des tableaux, que A1 ∧ A2 ∧ A3 → C est un théorème.

1. On notera souvent l’arité d’un prédicat de la manière suivante : predicat/arité. Par exemple, on notera père/2. ↑

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 23/35
26/10/2021 21:16 Introduction à la logique

Chapitre 3

Principe de résolution

Le principe de résolution est une règle d’inférence logique que l’on peut voir comme une générali‐
sation du modus ponens. Il permet de savoir si une formule close2 de 𝓛1 est un théorème. Ceci re‐
vient donc à montrer que cette formule est universellement valide (Théorème  4). Cette règle est
principalement utilisée dans les systèmes de preuve automatiques, elle est à la base du langage de
programmation logique Prolog.
Soit φ ∈  𝓛1 de la forme φ = (H1 ∧ H2 ∧ H3 → C). Montrer que φ est un théorème revient à
montrer que ¬φ est contradictoire, ou encore que H1 ∧ H2 ∧ H3 ∧ ¬C est contradictoire.
Le principe de résolution permet ainsi de montrer si une formule close est contradictoire. Une
phase préliminaire de standardisation est nécessaire :

1. Mise sous forme prénexe de la formule


2. Mise sous forme de Skolem
3. Mise sous forme normale conjonctive

3.1 Mise sous forme prénexe

Une formule est en forme prénexe lorsque tout les quantificateurs sont en tête de formule.

Définition 22 (Forme prénexe)


φ ∈ 𝓛1 est sous forme prénexe ssi elle peut s’écrire :

φ = Q1x1Q2x2…Qnxnψ

avec Qi ∈ 𝓠uant, xi ∈ 𝓥ar, et ψ ne contenant pas de quantificateurs.

Toute formule de 𝓛1 peut être mise sous forme prénexe.

Théorème 6
Pour tout φ ∈ 𝓛1, il existe φp sous forme prénexe telle que φ ≡ φp.

Dans la pratique, la forme prénexe peut être obtenue en déplaçant vers la gauche les quantifi‐
cateurs en respectant quelques contraintes : si une même variable est concernée par plusieurs
quantificateurs, un renommage des variables est nécessaire, si une expression correspond à la par‐
tie gauche d’un connecteur →, le(s) quantificateur(s) correspondant(s) change(nt).
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 24/35
26/10/2021 21:16 Introduction à la logique

Exemple 11 — ∀x (A (x) ∧ ∃x∀y B(x,y)) ≡ ∀x∃t∀y (A(x) ∧ B(t,y))
∀x (∀y P(y) → Q(x)) ≡ ∀x∃y (P(y) → Q(x))

∀x (P(x) → ∀y Q(y)) ≡ ∀x∀y (P(x) → Q(y))

3.2 Skolémisation

Le principe de résolution nécessite de supprimer les quantificateurs des expressions. Avant de sup‐
primer ces quantificateurs, il faut déplacer tous les quantificateurs existentiels avant les quantifica‐
teurs universels. Cette forme est alors appelée forme de Skolem. Concrètement, la suppression des
quantificateurs est assurée par le remplacement de chaque variable x quantifiée existentiellement
par une expression fonctionnelle (fonction de Skolem) ayant pour arguments les variables précé‐
dant x et quantifiées universellement.

Exemple 12 — ∀x∃y P(x,y) a pour forme de Skolem ∀x P(x,f(x))


∀x∀y∃z∃t P(x,y,z,t) a pour forme de Skolem ∀x∀y P(x,y,f1(x,y),f2(x,y))

Théorème 7
Il existe une fonction sk : 𝓛1  ⟶  𝓛1 telle que pour tout φ ∈  𝓛1, sk(φ) est sous forme de Skolem
et sk(φ) est satisfiable ssi φ est satisfiable et sk(φ) ⊨ φ.

3.3 Forme normale conjonctive

Nous allons maintenant supprimer les quantificateurs pour obtenir une formule sous forme nor‐
male conjonctive, afin de pouvoir y appliquer le principe de résolution.
Pour supprimer les quantificateurs il suffit d’appliquer les règles suivantes :

(i) les variables quantifiées universellement sont conservées et les fonctions (y compris les
fonctions de Skolem) ne sont pas modifiées ;
(ii) les variables quantifiées existentiellement sont remplacées par des constantes (toutes
différentes) ;
(iii) les variables sont renommées d’une clause à l’autre.

Il suffit ensuite d’utiliser les règles d’équivalence logique pour mettre la formule sous forme
normale conjonctive (voir définition 9). Toute expression φ ∈  𝓛1 après mise sous forme prénexe,
skolémisation puis mise sous forme normale conjonctive se réduit alors à une suite d’atomes reliés
entre eux par des ∧ et des ∨. φ prendra donc la forme :

φ = (L1,1 ∨ L1,2 ∨ … ∨ L1,n1) ∧ (L2,1 ∨ L2,2 ∨ … ∨ L2,n2) ∧ … ∧ (Lp,1 ∨ … ∨ Lp,np)

On pourra écrire une formule sous forme normale conjonctive sous forme clausale. Ceci permet
d’omettre les connecteurs logiques  ∧  et  ∨  :
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 25/35
26/10/2021 21:16 Introduction à la logique

(C1) L1,1 L1,2 … L1,n1

(C2) L2,1 L2,2 … L2,n2


(Cp) Lp,1 Lp,2 … Lp,np

avec Lij = atome ou ¬atome.

Exemple 13 — La formule φ = (A ∨ ¬C) ∧ C ∧ (B ∨ ¬D) ∧ (D ∨ B) ∧ (¬A ∨ ¬B) devient :

(C1) A ¬C
(C2) C
(C3) B ¬D
(C4) D B
(C5) ¬A ¬B

Définition 23 (Clause, litéral)


Chaque ligne est appelée clause, et un élément d’une ligne est un littéral. Un littéral précédé du
connecteur ¬ est dit négatif ; il est dit positif dans le cas contraire.

3.4 Résolution

Maintenant que notre formule est sous forme clausale, nous allons pouvoir appliquer le principe de
résolution. Ce principe est applicable en logique des propositions et en logique des prédicats. Ce‐
pendant, pour cette dernière, compte tenu de la présence de variables, il est nécessaire d’introduire
la notion d’unification.

Définition 24 (Formules unifiables)


Deux formules atomiques sont unifiables s’il existe une substitution des variables par des termes qui
rend les deux formules identiques. On note [x ↦ y] la substitution de x par y.

Remarque — La notion d’unification en logique des prédicats correspond à l’égalité en logique


des propositions.

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 26/35
26/10/2021 21:16 Introduction à la logique

Définition 25 (Résolution)
Soit la formule φ ∈ 𝓛1. Elle peut être décrite par un ensemble de clauses 𝓒 :


(Ci) A B
𝓒  = ⋮ avec A et A' unifiables.
(Cj) ¬A' C

La règle qui consiste à déduire la clause résolvante (B ∨ C) à partir des clauses (Ci) et (Cj) s’ap‐
pelle la règle (ou principe) de résolution.

Si 𝓒 ∧ (B ∨ C) est contradictoire, alors 𝓒 est contradictoire. Le but est alors d’obtenir la clause
vide notée ◻ en partant de l’ensemble de clauses 𝓒 .

Attention : la validité du principe impose que les variables d’une clause sont locales à cette
clause (de la même façon que les variables locales d’un sous-programme lui sont spécifiques), il
faut donc s’assurer qu’il n’existe pas de variables communes à deux clauses différentes. Cette
condition peut ne pas être respectée dans les cas suivants :

mise sous forme prénexe partielle de l’énoncé de départ : ainsi dans le deuxième exemple à venir,
on veut prouver (H1 ∧ H2 → C), H1, H2 et ¬C sont alors mis chacun sous forme prénexe. Il
s’ensuit que la variable x reste commune aux trois clauses. Une mise sous forme prénexe to‐
tale aurait conduit à renommer toutes les variables (l’énoncé comporterait alors 7 variables).
la mise sous FNC d’une formule du type ∀x (A(x) ∧ B(x)) : on obtient deux clauses A(x) et B(x),
qui ne sont pas liées par x puisque la formule de départ est logiquement équivalente à
(∀x A(x) ∧ ∀y B(y)) dont la forme normale est (A(x) ∧ B(y)).

Définition 26 (Déduction par résolution)


Soit C1, C2, …, Cn un ensemble de clauses à réfuter. On appellera déduction par résolution toute
suite 〈C1, C2, …, Cn, f1, f2, …, fp, ◻〉 où fi est obtenue par résolution de deux clauses apparte‐
nant à l’ensemble {C1, …, Cn, f1, …, fi–1}.

Exemple 14 (Résolution en logique des propositions) — Montrer que φ  =


((¬p → q) → (¬p → (¬q → p))) est un théorème. Cela revient à montrer que ¬φ est contradictoire. La
standardisation précédente appliquée à ¬φ donne :

¬((¬p → q) → (¬p → (¬q → p)))
≡ ¬(¬(¬¬p ∨ q) ∨ (p ∨ (q ∨ p)))
≡ ((p ∨ q) ∧ ¬(p ∨ (q ∨ p))
≡ (p ∨ q) ∧ (¬p ∧ ¬q)
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 27/35
26/10/2021 21:16 Introduction à la logique

(C1) p q
(C2) ¬p
(C3) ¬q

Le principe de résolution permet alors d’obtenir deux nouvelles clauses (C4) et (C5).

(C4) q obtenue par la résolution de C1 + C2


(C5) ◻ obtenue par la résolution de C4 + C3

Cette dernière étant la clause vide. ¬φ est donc contradictoire, φ est donc démontrée.

Exemple 15 (Résolution en logique des prédicats) — Montrons que H1 ∧ H2 → C avec :

(H1) ∃x∀y (∀x P(x,y) → R(x,y))
(H2) ∃x∀y P(y,x)
(C) ∃x∃y R(x,y)

Cela revient à montrer que H1 ∧ H2 ∧ ¬C est contradictoire.

Mise sous forme prénexe : seules H1 et ¬C ne vérifient pas cette forme. La deuxième occurrence du
quantificateur ∀ dans H1 peut être déplacée. ATTENTION : le passage à travers le connecteur ¬ le trans‐
forme en ∃, car : (∀x α → β) ≡ ¬(∀x α ∨ β). Il convient de renommer x en y pour éviter un conflit avec
une variable existante. Les deux quantificateurs ∃ de la négation de la conclusion deviennent des quanti‐
ficateurs ∀ après leur mise en avant. On obtient alors :

(H1) ∃x∀y∃z (P(z,y) → R(x,y))
(H2) ∃x∀y P(y,x)
(¬C) ∀x∀y ¬R(x,y)

On remarquera que la mise sous forme prénexe est partielle : H1, H2 et ¬C sont chacune sous forme
prénexe mais la formule (H1 ∧ H2 ∧ ¬C) ne l’est pas. Il en résulte des variables communes à H1, H2 et
¬C.

Skolémisation : Le traitement de H1 a pour conséquence la création de la constante a (remplacement


de ∃x) et la création de la fonction f(y) (remplacement de ∃z). La skolémisation de H2 provoque la créa‐
tion d’une nouvelle constante b. L’énoncé devient alors :

(H1) (P(f(y),y) → R(a,y))
(H2) P(y,b)
(¬C) ∀x¬R(x,y)

Mise sous forme normale conjonctive : On obtient trois clauses


https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 28/35
26/10/2021 21:16 Introduction à la logique

(C1) ¬P(f(y),y) R(a,y) (C1) ¬P(f(y),y) R(a,y)


(C2) P(y,b) (C2) P(u,b)
(C3) ¬R(x,y) (C3) ¬R(x,v)

avant renommage des variables après renommage des variables

Remarque — Le renommage des variables a été effectué pour tenir compte de la remarque précédente.
Dans le cas contraire, la résolution ne peut être réalisée correctement ; ainsi l’unification du premier litté‐
ral de C1 et du littéral de C2 dans la forme non renommée conduirait à la substitution infinie [y ↦ f(y)].

Résolution :

(C4) ¬P(f(y),y) obtenue par la résolution de C1 + C3 [x ↦ a, v ↦ y]


(C5) ◻ obtenue par la résolution de C4 + C2 [u ↦ f(y), y ↦ b]

3.5 Exercices

Exercice 3.5.1 — Montrer, en utilisant la résolution, que la formule suivante est une
tautologie :

((p → r) ∧ (q ↔ s) ∧ (r ↔ q) ∧ p) → s

Exercice 3.5.2 — Soient les formules dans 𝓛1 :

(A1) ∃z∀x∀y (F(x,y) → G(z,x))
(A2) ∀x∀y∃z (¬F(y,z) → E(x))
(A3) ∃z ¬E(z)
(C) ∃x G(x,x)

Montrer, en utilisant le principe de résolution, que A1 ∧ A2 ∧ A3 → C est un théorème.

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 29/35
26/10/2021 21:16 Introduction à la logique

Exercice 3.5.3 — Montrer en utilisant le principe de résolution que :

H1, H2, H3 ⊨ C

On prendra soin de mettre en valeur les étapes de mise sous forme prénexe, de Skolémisa‐
tion et de mise sous FNC.

(H1) (∃x F(x) → ∃x G(x))
(H2) ∀x (G(x) → ∃y H(x,y))
(H3) ∀x∀y (H(x,y) → A(x))
(C) ∃x (F(x) → A(x))

Exercice 3.5.4 — Montrer en utilisant le principe de résolution que :

H1, H2, H3, H4, H5 ⊨ C

On prendra soin de mettre en valeur les étapes de mise sous forme prénexe, de Skolémisa‐
tion et de mise sous FNC. La solution devra emprunter toutes les clauses de départ.

(H1) ∀x∀y (M(x,x,x) ∨ B(x))
(H2) ∀x∀y∃z ((M(x,y,z) ∧ N(x,y)) → P(y,x))
(H3) ∃x∀y∀z∀t (¬P(y,x) ∧ (M(y,z,t) ∨ A(x,z)))
(H4) ∀x∀y (M(x,x,x) → N(x,y))
(H5) ∀x∀y (M(x,x,y) → ¬A(x,y))
(C) ∃x B(x)

(x, y, z et t désignent des variables)

Exercice 3.5.5 — Soient les formules suivantes dans 𝓛1. Montrer, en utilisant le principe de ré‐
solution, que H1 ∧ H2 ∧ H3 ∧ H4 → C est un théorème. La solution devra emprunter toutes les
clauses de départ. x, y, z désignent des variables.

(H1) ∀x∀y (D(x,y) → A(x,x))
(H2) (∀x A(x,x) → ∀x∀y B(x,y))
(H3) ∀x∀y∀z (C(x,z) → (A(x,y) ∨ D(y,z) ∨ E(z,z)))
(H4) ∀x∃y (C(x,y) ∧ ¬E(y,y))
(C) ∃x B(x,x)

Exercice 3.5.6 — En reprenant le monde de l’exercice  2.5.3, montrer que certains étudiants
sont membres du personnel.
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 30/35
26/10/2021 21:16 Introduction à la logique

Chapitre 4

Programmation logique

La programmation logique est une forme de programmation qui définit les applications à l’aide
d’un ensemble de faits élémentaires les concernant et de règles de logique leur associant des consé‐
quences plus ou moins directes. Ces faits et ces règles sont exploités par un démonstrateur de théo‐
rème ou moteur d’inférence, en réaction à une question ou requête. Cette approche se révèle beau‐
coup plus souple que la définition d’une succession d’instructions que l’ordinateur exécuterait. La
programmation logique est considérée comme une programmation déclarative plutôt qu’impéra‐
tive, car elle s’attache davantage au quoi qu’au comment, le moteur assumant une large part des
enchaînements. Elle est particulièrement adaptée aux besoins de l’intelligence artificielle, dont elle
est un des principaux outils. (Source : wikipedia)

4.1 Un cas particulier du principe de résolution

Prolog est un logiciel implémentant le principe de résolution, qui ne traite que des clauses de
Horn : ces clauses contiennent au plus un littéral positif (placé en tête). Un programme Prolog
comporte 3 types de clauses :

clauses ayant un seul littéral positif (hypothèses)


clauses ayant un littéral positif et un ou plusieurs littéraux négatifs (règles)
clause ne possédant que des littéraux négatifs (but)

Par convention les littéraux négatifs d’une règle suivent le littéral positif. On peut donc omettre
d’indiquer le signe des littéraux, seul devra être précisé le but afin qu’il ne soit pas confondu avec
une règle.

Exemple 16 (Un programme logique) —

(c1) parents(pierre, henri, aline)


(c2) parents(solange, henri, aline)
(c3) parents(simon, charles, solange)
(c4) parents(louis, pierre, alice)
(c5) parents(jacques, pierre, alice)
(c6) parents(clément, louis, sabine)
(c7) grandsparents(X, Y, Z) ¬parents(X, U, V) ¬parents(U, Y, Z)
(c8) grandsparents(X, Y, Z) ¬parents(X, U, V) ¬parents(V, Y, Z)
https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 31/35
(c9) ¬grandsparents(simon, S, T) ¬write("grands-parents de simon : ", S, T)
26/10/2021 21:16 Introduction à la logique

Ce programme comporte six hypothèses (les 6 premières clauses), deux règles (les septième et
huitième clauses) et un but (la dernière clause). Le prédicat parents(U, V, W) est interprété comme
« U a pour père V et pour mère W ». Les six premières clauses définissent un arbre généalogique.
Le prédicat grandsparents(X, Y, Z) est alors défini par deux règles : « X a un père U dont les pa‐
rents sont Y et Z » (c7) ou « X a une mère V dont les parents sont Y et Z » (c8). Le but cherche à ob‐
tenir la contradiction sur les grands-parents de simon.

4.2 Fonctionnement de l’interpréteur Prolog

L’interpréteur Prolog cherche à obtenir une contradiction en utilisant la stratégie linéaire ver‐
rouillée. Cela revient à construire un arbre dont les sommets sont les résolvantes successives obte‐
nues à partir du but initial. Ainsi, il part du but (p.ex., B1, B2, …, Bn) et cherche à appliquer le
principe de résolution successivement sur B1, B2, …, Bn. Pour résoudre Bi, l’interpréteur recherche
la première clause C dont le premier littéral est unifiable avec Bi. Deux cas sont possibles :

C est une hypothèse : la résolution est immédiate et l’interpréteur passe à Bi+1, …, Bn.
C est une règle : la liste des buts à résoudre devient Ci1, …, Cik, …, Bi+1, …, Bn

L’interpréteur s’arrête dès que le dernier sous-but est résolu. Par contre, il y a un risque de
boucle infinie (attention à l’ordre d’écriture des règles) : donc Prolog n’est pas complet.

4.3 Conventions syntaxiques de Prolog

Les éléments syntaxiques d’un programme Prolog (au sens informatique du terme) sont :

constantes : entiers, flottants, ou chaînes de caractères commençant par une minuscule


variables : chaînes de caractères commençant par une majuscule
prédicats :
– nom commençant par une minuscule
– arguments pouvant être des constantes, des variables et des prédicats
listes : entre crochets ouvrant “[” et fermant “]”, les éléments étant séparés par des vigules.
Il est possible de concaténer directement des listes avec le caractère “|” : [a,b,c] = [a | [b
| [c]]] = [a,b | [c]]
faits : faisant apparaître uniquement des prédicats et des constantes, et se terminant par le
caractère “.” : toto(truc, machin).
règles : faisant appel à des prédicats, des variables et des constantes, où les littéraux positifs
étant séparés par des virgules : titi(X) :- toto(X,machin), bidule(foo).

:
Exemple 17 (Un programme logique informatique) —

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/
parents(pierre,henri,aline). 32/35
26/10/2021 21:16 Introduction à la logique

parents(simon,charles,solange).

parents(louis,pierre,alice).
parents(jacques,pierre,alice).

parents(clement,louis,sabine).
grandsparents(X,Y,Z):- parents(X,U,_), parents(U,Y,Z).

grandsparents(X,Y,Z):- parents(X,_,V), parents(V,Y,Z).

Ce programme peut être enregistré dans un fichier. Le but sera alors fournit à l’interpréteur directe‐
ment comme une question :

?- grandsparents(simon,S,T).

qui répondra :

S = henri,
T = aline.

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 33/35
26/10/2021 21:16 Introduction à la logique

Bibliographie

Russell, S. et P. Norvig (2010). Intelligence artificielle. 3e édition. Pearson.


Jussien, N. (2006). Logique(s), langages formels et complexité pour l’informatique. Hermès.
Rivenc, F. (2003). Introduction à la Logique. Éditions Payot.
Nilsson, U. et J. Maluszynski (2000). Logic, Programming and Prolog (2ed). Wiley & Sons.
url : http://www.ida.liu.se/~ulfni53/lpp/bok/bok.pdf.
Sterling, L. et E. Shapiro (2000). The art of Prolog. MIT Press.
Chazal, G. (1996). Éléments de logique formelle. Hermès.
Gochet, P. et P. Gribomont (1991). Méthodes pour l’informatique fondamentale. T.  1. Lo‐
gique. Hermès.

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 34/35
26/10/2021 21:16 Introduction à la logique

Listes des définitions et théorèmes

(Définition 1) Expression
(Définition 2) Formule
(Définition 3) Interprétation
(Définition 4) Tautologie
(Définition 5) Contradiction
(Définition 6) Satisfiabilité
(Définition 7) Conséquence logique
(Définition 8) Équivalence logique
(Définition 9) Forme normale conjonctive
(Définition 10) Déduction ou preuve
(Définition 11) Théorème
(Définition 12) Système formel pour 𝓛0
(Théorème 1) Théorème de la déduction
(Théorème 2) Théorème de la correction en calcul propositionnel
(Théorème 3) Théorème de la complétude en calcul propositionnel
(Définition 13) Arbre de décution
(Définition 14) Branche fermée
(Définition 15) Portée d’un quantificateur
(Définition 16) Variable libre/liée
(Définition 17) Formule close
(Définition 18) Interprétation en logique des prédicats
(Définition 19) Valuation
(Définition 20) Validité universelle, adaptée de la Déf. 4
(Définition 21) Système formel pour 𝓛1
(Théorème 4) Théorème de la complétude (et de la correction) — Gödel, 1929
(Définition 22) Forme prénexe
(Définition 23) Clause/Littéral
(Définition 24) Formules unifiables
(Définition 25) Résolution
(Définition 26) Déduction par résolution

https://www.emse.fr/~zimmermann/Teaching/Logique/Livret/ 35/35

Vous aimerez peut-être aussi