Logique : notes de cours
Jean-Pierre Jouannaud
12 février 2005
Table des matières
1 Logique du premier ordre 4
1.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Formules logiques . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 Variables libres et variables liées . . . . . . . . . . . . . . . . . . . 5
1.1.4 Positions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.5 Substitutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Sémantique des connecteurs logiques . . . . . . . . . . . . . . . . 7
1.2.2 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Interprétation des formules . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4 Validé et satisfiabili . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.5 Conséquence et équivalence sémantiques . . . . . . . . . . . . . . 10
1.2.6 Théorie d’une structure . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1 .................................... 15
1.3.2 .................................... 15
1.3.3 .................................... 17
1.3.4 .................................... 17
1.3.5 .................................... 17
1.3.6 .................................... 17
1.3.7 .................................... 17
2 Séquents, Clauses et Résolution 19
2.1 Feuille de route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Mise sous forme clausale . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Théorème de Herbrand . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Calcul des séquents clausal . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Complétude de la résolution close . . . . . . . . . . . . . . . . . . . . . . 24
2.6 Relèvement et Complétude de la résolution . . . . . . . . . . . . . . . . . 25
2.7 Lectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.8 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2
3 Unification 28
3.0.1 Problèmes d’unification . . . . . . . . . . . . . . . . . . . . . . . 28
3.0.2 Formes solues . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.0.3 Règles de transformation . . . . . . . . . . . . . . . . . . . . . . . 30
3.0.4 Terminaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.0.5 Complétude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1 Lectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4 Clauses de Horn et PROLOG 36
4.1 Stratégies de résolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.1 Résolution binaire . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.2 Résolution négative . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.3 Stratégie Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2 Stratégies de résolution complètes pour les Clauses de Horn . . . . . . . . 38
4.3 Plus petit modèle de Herbrand et sémantique des programmes logiques . . . 40
4.4 Lectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.5.1 .................................... 43
5 Stratégies de Résolution et Clauses de Horn 44
5.1 Résolution binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2 Résolution négative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3 Clauses de Horn et stratégie input . . . . . . . . . . . . . . . . . . . . . . 45
5.4 Plus petit modèle de Herbrand et sémantique des programmes logiques . . . 48
5.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.5.1 .................................... 50
3
Chapitre 1
Logique du premier ordre
1.1 Syntaxe
1.1.1 Vocabulaire
Un langage du premier ordre est constitué à partir d’un vocabulaire comprenant
1. un ensemble (supposé infini sauf mention express du contraire) de symboles de va-
riables X={x, y, z, . . .},
2. un ensemble de symboles de fonctions F={f, g, h, . . . , a, b, c, . . .}munis d’arités
tel que Fnest le sous-ensemble des symboles de fonction d’arité n,
3. un ensemble de symboles de prédicats P={P, Q, R, . . . , p, q, r, . . .}munis d’arités
tel que Pnest le sous-ensemble des symboles de prédicats d’arité n,
4. des connecteurs logiques usuels : ,,¬,, des constantes 0,1, et des quantifi-
cateurs ,. On utilisera également des symboles auxiliaires de désambiguation
comme (,),[,],{et }.
1.1.2 Formules logiques
Le langage logique est formé de quatre entités syntaxiques, les symboles de variables
(ou variables), les termes, les atomes et les formules, construites successivement comme
suit :
1. l’ensemble T(F,X)des termes finis est fini comme le plus ensemble tel que
- toute variable est un terme;
- si fest un symbole de fonction d’arité net t1,...tnsont des termes, alors
f(t1,...,tn)est un terme.
Exercice 1.1 Montrer que l’ensemble des termes représentés comme des mots sur
l’alphabet X ∪ F est un langage hors-contexte lorsque Fet Xsont finis.
Un terme est dit clos s’il ne contient pas de variable. On notera par T(F)l’ensemble
des termes clos sur le vocabulaire F. On représentera sovent les termes par des arbres
étiquettés. La profondeur d’un terme (tT(F,X)) est la longueur de sa plus longue
branche. Sa taille est celle de l’arbre associé. Si tT(F,X),V ar(t)désigne l’en-
semble des variables de t. Enfin, l’égalité “syntaxique” entre termes est notée .
4
Les mathématiciens ont pour habitude de remplacer les parenthèses par des règles
d’association et de priorité qui permettent de désambigüer les formules, donc de faire
leur analyse syntaxique. On supposera ainsi que tous les symboles associent à gauche,
et que leur ordre de priorité décroissant est donné par ¬>>>.
2. L’ensemble des atomes est l’ensemble des expressions de la forme P(t1,...,tn)
Pest un symbole de prédicat et t1,...,tnsont des termes.
3. Le langage F(R,F,X)des formules du premier ordre bati sur le vocabulaire
R,F,Xest le plus petit ensemble contenant les constantes logiques 0et 1et les
atomes, et clos par les opérations qui
- à la formule Aassocient sa négation ¬A,
- aux formules A, B associent leur conjonction AB, leur disjonction AB, et
l’implication AB,
- à la formule Aet à la variable xassocient la formule existenciellement quantifiée
xA, et la formule universellement quantifiée xA.
Le langage des formules propositionnelles est obtenu pour X=,F=,P=P0.
Un littéral est un atome (auquel cas il est dit positif) ou la négation d’un atome (au-
quel cas il est dit négatif). Une formule sans variable est dite close. Une formule dont les
quantificateurs apparaissent tous en tête est dite prénexe. Une formule universelle (resp.
existentielle) est une formule prénexe close dont les seuls quantificateurs sont universels
(resp. existentiels).
On appelle clause toute formule universelle dont les sous formules non quantifiées sont
des littéraux ou des disjonctions de littéraux. Une clause a donc la forme générale
x1...xnA1...Ap∨ ¬B1...∨ ¬Bq
A1,...,Ap, B1,...,Bqdésignent des atomes.
Exercice 1.2 Montrer que l’ensemble des formules et des formules prénexes représentés
comme des mots sur l’alphabet X ∪ F ∪ P est un langage hors-contexte lorsque F,Pet X
sont finis.
Qu’en est-il de l’ensemble des clauses ?
1.1.3 Variables libres et variables liées
Les quantificateurs lient les variables sur lesquelles ils portent. On définit donc les va-
riables libres Var() et les variables liées BVar() d’une formule par récurrence sur la struc-
ture de la formule :
Variables Var(x) = {x}si xest une variable
BVar(x) = si xest une variable
Termes Var(f(t1,...,tn)) = Var(t1)...∪ Var(tn)
BVar(f(t1,...,tn)) =
Atomes Var(P(t1,...,tn)) = Var(t1)...∪ Var(tn)
BVar(P(t1,...,tn)) =
Formules Var(AB) = Var(A)∪ Var(B)
BVar(AB) = BVar(A)∪ BVar(B)
Var(AB) = Var(A)∪ Var(B)
5
1 / 51 100%