You are on page 1of 39

UPMC, LI214 Annee 20112012

Beatrice Berard Aide memoire


Outils mathematiques pour linformatique
Merci `a ma coll`egue Ir`ene Guessarian pour ses documents
Merci `a Benjamin Baron, etudiant 2009-2010 S1, pour ses notes de cours
Table des mati`eres
1 Introduction : terminaison 3
1.1 Conjecture de Syracuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Un mod`ele de calcul tr`es general : les machines `a deux compteurs . . . . . . . 4
2 Ensembles et relations 6
2.1 Notions de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Relations dequivalences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 Monodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Induction sur N 8
3.1 Premier principe dinduction sur N . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Deuxi`eme principe dinduction : recurrence compl`ete sur N . . . . . . . . . . 9
3.3 Fonctions denies par recurrence . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Induction structurelle 11
4.1 Ensembles denis par induction . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 Fonctions denies par induction structurelle . . . . . . . . . . . . . . . . . . . 12
4.3 Preuves par induction structurelle . . . . . . . . . . . . . . . . . . . . . . . . 14
5 Relations dordre 15
5.1 Denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.2 Ordres bien fondes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.3 Exemples et contre-exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6 Syst`emes de transitions et automates nis 18
6.1 Motivations et exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.2 Denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.3 Langages non reconnaissables . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7 Langages reconnaissables 20
7.1 Union, intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7.2 Complementaire et determinisation . . . . . . . . . . . . . . . . . . . . . . . . 20
7.3 Produit, etoile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.4 Langages rationnels et theor`eme de Kleene . . . . . . . . . . . . . . . . . . . . 22
7.5 Terminaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.6 Minimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8 Fonctions booleennes 27
8.1 Alg`ebre de Boole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.2 Fonctions booleennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.3 Formes normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9 Calcul propositionnel 29
9.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9.2 Semantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9.3 Equivalence semantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.4 Consequence semantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.5 Consequence logique (ou deduction) . . . . . . . . . . . . . . . . . . . . . . . 33
10 Logique du premier ordre 34
10.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
10.2 Variables libres et liees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
10.3 Semantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
10.4 Proprietes semantiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2
1 Introduction : terminaison
1.1 Conjecture de Syracuse
Cette conjecture, appelee aussi conjecture de Collatz, a ete proposee en 1928, par Lothar
Collatz.
Version programme. On consid`ere le programme suivant :
while (k > 1) {
if (k % 2 == 1)
k = 3 * k + 1; // Si k impair
else
k = k / 2; // Si k pair
}
qui peut aussi etre ecrit sous la forme dune fonction recursive :
collatz(k) { //prend un entier en param`etre et retourne un entier
if (k > 1) {
if (k % 2 == 1)
return collatz(3 * k + 1); // Si k impair
else
return collatz(k / 2); // Si k pair
}
else return 1;
}
On a par exemple :
pour k = 4 : 4 2 1
pour k = 33 : 33 100 50 25 76 38 19 58 29 88 44 22
11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
La conjecture dit que ces programmes sarretent pour toute valeur de k N, k > 1. Cette
conjecture a ete veriee pour tout k < 2
62
, mais il ny a pas de demonstration pour le cas
general.
En fait, larret dun programme est indecidable : il nexiste pas dalgorithme qui, etant
donne un programme, retourne true si ce programme sarrete et false sinon.
Version suite. Soit (u
n
)
nN
la suite denie inductivement par :
u
0
= k pour k N, k > 1
u
n+1
=
_
u
n
/2 si u
n
pair
3u
n
+ 1 si u
n
impair
Dans ce cas, la question peut etre reformulee de la fa con suivante : pour tout k > 1, existe-t-il
n N

tel que u
n
= 1 ?
3
Version fonction. Soit f : N \ {0} N une fonction denie par :
f(k) =
_

_
k/2 si k pair
3k + 1 si k impair
1 si k = 1
La question est alors de savoir si pour tout k > 1, il existe n N tel que
f
n
(k) = f f f
. .
n fois
(k) = 1.
Version machine ` a un registre.
init calc
impair
pair
end
input k
k pair
k impair ?
k := k/2
k := 3k + 1
k = 1 ?
Dans ce mod`ele, la question est de savoir si pour tout k > 1 fourni en entree, letat end
est atteint.
Conclusion. Pour montrer la terminaison dun programme avec une boucle, on peut as-
socier au corps de cette boucle une valeur dans un ensemble muni dune relation dordre et
montrer que la suite de ces valeurs est stationnaire (constante `a partir dun certain rang).
Plusieurs outils mathematiques sont utiles pour cela :
linduction (dont un cas particulier est la recurrence), qui permet de deduire les valeurs
successives,
les theor`emes de points xes, qui donnent des conditions pour que des suites soient
stationnaires,
les ordres bien fondes, qui donnent aussi de telles conditions,
les automates nis, qui sont un mod`ele de calcul su! samment simple pour quon puisse
decider plusieurs questions.
1.2 Un mod`ele de calcul tr`es general : les machines `a deux compteurs
Les machines `a registres sont des mod`eles de calcul qui comportent un ensemble ni
de registres manipules par des operations. Un compteur est un registre particulier qui peut
4
contenir seulement une valeur enti`ere et, ` a part linitialisation, admet comme seules operations
lincrementation et la decrementation avec test `a 0.
Les machines `a deux compteurs peuvent etre vues comme des programmes dun langage
de programmation de bas niveau.
Denition 1.1 (Machines `a deux compteurs).
Une machine M ` a deux compteurs C et D est une suite nie dinstructions etiquetees. Chaque
instruction peut etre soit linstruction particuli`ere STOP, soit une operation sur un des deux
compteurs X {C, D} :
1. : X := X + 1; goto

;
2. : si X > 0 alors X := X 1; goto

;
sinon goto

;
Exemple. Concevoir puis dessiner une machine ` a deux compteurs realisant laddition 2 + 3.
Pour une machine M, une conguration est un triplet (, n, m) o` u est une etiquette,
et n et m sont les valeurs respectives des compteurs C et D juste avant linstruction . Une
execution de la machine part de la conguration initiale (
0
, 0, 0), o` u
0
est letiquette de la
premi`ere instruction et les deux compteurs sont `a 0. On passe ensuite dune conguration ` a
la suivante par une transition. Depuis (, n, m), on obtient :
(

, n + 1, m) si linstruction detiquette est de type 1. sur le compteur C,


(

, n1, m) si linstruction detiquette est de type 2. sur le compteur C et que n > 0,


ou (

, 0, m) si n = 0,
ou des congurations similaires pour des operations sur le compteur D.
Cest ce que nous appellerons dans la suite un syst`eme de transitions, qui denit la semantique
dune machine `a deux compteurs. Ces machines peuvent aussi etre vues comme une generali-
sation des automates nis, vus plus loin dans ce cours, un automate ni etant une machine
sans compteur.
Le probl`eme de larret dune machine `a deux compteurs est deni par :
Donnee : une machine `a deux compteurs
Question : existe-t-il une execution qui atteint linstruction STOP ?
Theor`eme 1.2 (Minski, 1967). Le probl`eme de larret dune machine ` a deux compteurs est
indecidable.
Cela signie quil nexiste pas dalgorithme qui, prenant en entree une machine ` a deux
compteurs, repond ` a la question par oui ou par non. On retrouve dans ce cadre lindecidabilite
de la terminaison dun programme.
5
2 Ensembles et relations
2.1 Notions de base
Pour un element x dun ensemble E, on note x E, et pour un sous-ensemble ou partie
A de E, on note A E. Lensemble de toutes les parties de E est note P(E).
Si E est ni de cardinal n alors card(P(E)) = 2
n
.
Dierence. Si A et B sont deux parties de E, on denit A\B = {x E | x A et x / B}.
Produit cartesien. Le produit cartesien de deux ensembles E et F est lensemble :
E F = {(x, y) | x E, y F}.
Si E et F sont nis, le cardinal de E F est card(E) card(F).
Ce produit se generalise ` a n ensembles E
1
, . . . , E
n
:
E
1
E
n
=
n

i=1
E
i
= {(x
1
, . . . , x
n
) | x
1
E
1
, . . . , x
n
E
n
}.
2.2 Relations
Denition 2.1 (Relation). Une relation binaire R dun ensemble E vers un ensemble F est
un sous-ensemble de E F.
Si (x, y) R, on dit que x est en relation avec y et on note aussi xRy ou R(x, y).
Dans le cas particulier o` u E = F, on dit que R est une relation binaire sur E.
Une relation n-aire sur un ensemble E est un sous-ensemble de E
n
= E E E
. .
n fois
.
Si R est une relation binaire de E vers F, on denit la relation inverse de R par :
R
1
= {(y, x) F E | (x, y) R}.
On note egalement Id
E
la relation degalite sur un ensemble E : Id
E
= {(x, x) | x E}.
Etant donnees deux relations R EF et R

F G, leur composition est la relation RR

(parfois aussi notee R

R) de E vers G denie par :


RR

= {(x, z) E G | il existe y F tel que (x, y) R et (y, z) R

}.
Pour une relation binaire R sur un ensemble E, on denit :
R
0
= Id
R
n+1
= RR
n
La fermeture transitive de R est denie par R
+
=
n1
R
n
et la fermeture reexive et transitive
de R est R

=
n0
R
n
.
Denition 2.2 (Proprietes dune relation binaire sur un ensemble E). Une relation binaire
R sur un ensemble E est :
reexive si pour tout x de E, xRx,
symetrique si pour deux elements quelconques x et y de E, si xRy alors yRx,
antisymetrique si pour deux elements quelconques x et y de E, si xRy et yRx alors
x = y.
transitive si pour trois elements quelconques x, y et z de E, si xRy et yRz alors xRz.
6
2.3 Relations dequivalences
Denition 2.3 (Relation dequivalence). Une relation dequivalence sur un ensemble E est
une relation binaire reexive, symetrique et transitive sur E.
Si est une relation dequivalence sur un ensemble E, on denit la classe dun element x
de E comme lensemble de tous les elements relies ` a x, cest-`a-dire : [x] = {y E | x y}. Les
classes dequivalences forment une partition de E, cest-`a-dire un ensemble de parties non vides
(A
i
)
iI
deux `a deux disjointes telles que E =
iI
A
i
. Lensemble des classes dequivalences
sappelle lensemble quotient, note E/ . Lapplication de E dans E/ qui `a un element x
associe sa classe [x] est surjective, on lappelle la surjection canonique.
Reciproquement, ` a toute partition (A
i
)
iI
dun ensemble E, on peut associer une relation
dequivalence R denie par : xRy sil existe un i tel que x et y sont tous deux dans A
i
.
2.4 Fonctions
Denition 2.4 (Fonction). Une fonction f dun ensemble E dans un ensemble F est une
relation binaire de E vers F telle que pour tout element x de E, il existe au plus un element
y de F tel que (x, y) f. On dit alors dans ce cas que y est limage de x par f et on note
f(x) = y.
Une application de E dans F est une fonction pour laquelle tout element x de E a une
image.
Une application f est :
injective si deux elements distincts ont des images distinctes :
x, y E, f(x) = f(y) x = y
surjective si tout element de F est limage dun element de E :
y F, x E tq y = f(x)
bijective si elle est injective et surjective : tout element y de F est limage dun unique
element x de E.
On note F
E
lensemble des applications de E dans F. En e" et, une application f : E F
peut etre decrite par la famille (f(x))
xE
des images des elements de E.
Si E = {x
1
, . . . , x
n
} est ni de cardinal n, cette famille est le n-uplet (f(x
1
), . . . , f(x
n
)) F
n
.
Lorsque E et F sont nis, le cardinal de F
E
est donc card(F)
card(E)
.
Pour la composition des applications, on utilise souvent aussi la notation g f au lieu de fg,
qui est une application de E dans G lorsque f est une application de E dans F et g une
application de F dans G. Ainsi, y = g f(x) signie y = g[f(x)].
Remarque. Si A est une partie dun ensemble E, la fonction caracteristique de A est lap-
plication notee 1
A
: E {0, 1} denie par 1
A
(x) = 1 si x A et 0 sinon.
Ainsi, si R est une relation n-aire sur un ensemble E, on peut aussi decrire R par sa fonction
caracteristique 1
R
: E
n
{0, 1}
1
R
(x
1
, . . . , x
n
) =
_
1 si (x
1
, . . . , x
n
) R
0 sinon
Cest pourquoi, pour une relation binaire R, lecriture R(x, y) au lieu de xRy ou (x, y) R
revient `a identier R avec sa fonction caracteristique : R(x, y) signie 1
R
(x, y) = 1.
7
2.5 Monodes
Denition 2.5 (Monode). Un monode est une paire (E, ) o` u E est un ensemble et
: E E E est une operation associative qui poss`ede un element neutre :
est associative : (x, y, z) E
3
, x (y z) = (x y) z
il existe e E element neutre : x E, x e = e x = x
Exemple `a retenir. Soit A un ensemble ni. Lensemble des suites delements de A est
un monode pour la concatenation, notee ou sans aucun symbole. Cet ensemble est note A

(cest le monode libre engendre par A) et ses elements sont appeles des mots sur lalphabet
A. Lelement neutre est le mot vide, qui correspond `a une suite vide (aucune lettre) et qui
est note .
Par exemple, pour A = {a, b, c, . . . , z}, les mots de A

sont tous les mots ecrits en minuscule


(ce ne sont pas forcement des mots de la langue fran caise). La concatenation des mots u = bon
et v = jour donne le mot uv = bonjour, la concatenation de u = jron et v = obu donne le
mot uv = jronobu.
Pour A = {a, b}, on a : A

= {, a, b, aa, ab, ba, bb, . . .}.


Pour A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, lensemble A

contient toutes les ecritures en base 10 des


nombres entiers. Le mot 2010 est un element de A

.
3 Induction sur N
Linduction sur N est simplement la recurrence. On peut denir une suite ou une fonction
sur N par une relation de recurrence, par exemple :
_
u
o
= 3
u
n+1
= u
n
+ 2
ou
_
f(0) = 5
f(n + 1) = 3f(n)
Pour calculer la valeur de u
n
ou de f(n) pour tout n, on utilise une demonstration par
recurrence. Les resultats presentes dans la suite de ce chapitre fournissent diverses methodes
pour montrer quune propriete P est vraie sur N, cest-`a-dire : P (n) est vraie pour tout n N.
3.1 Premier principe dinduction sur N
Proposition 3.1. Si P (0) est vraie et si pour tout n N, n 0, en supposant que P (n) est
vraie, on peut montrer que P (n + 1) est vraie, alors P (n) est vraie pour tout n N.
_
Base : P(0) vraie
Induction : pour tout n N, P(n) vraie implique P(n + 1) vraie
alors pour tout n N, P(n) vraie
Exemple. Soit S
n
= 1 + 2 + +n pour tout n 0.
P (n) : S
n
=
n(n + 1)
2
pour tout n N
Montrons ce resultat par recurrence :
Base. S
0
= 0, donc P (0) est vraie.
8
Induction. Supposons P (n) vraie `a un certain rang n N (ie. 2 S
n
= n(n + 1))
Montrons alors que P (n + 1) est vraie.
2 S
n+1
= 2(1 + 2 + +n
. .
Sn
+(n + 1))
= 2 S
n
+ 2 (n + 1)
= n(n + 1) + 2 (n + 1) par hypoth`ese de recurrence
2 S
n+1
= (n + 1) (n + 2)
Conclusion. On a montre :
Base : P (0) vraie.
Induction : Pour n N, en supposant P (n), on en a deduit P (n + 1).
Donc P est vraie sur N.
Proposition 3.2 (Variante). Une variante du resultat precedent :
_
Base : P (n
0
) vraie
Induction : Pour tout n n
0
, P(n) vraie implique P(n + 1) vraie
alors pour tout n n
0
, P (n) est vraie.
Exemple. Soit P (n) : les n personnes de cette salle ont le meme age.
Base n
0
= 1 P (1) vraie
Induction pour tout n 2 P(n) vraie implique P(n + 1) vraie
| | | |
1 2
n n + 1
mme ge par P(n)
mme ge par P(n)
Lerreur vient du fait que P(1) nimplique pas P(2)
3.2 Deuxi`eme principe dinduction : recurrence compl`ete sur N
Proposition 3.3. Soit P une propriete sur N. Si
(I

): pour tout n N, [ si (pour tout k < n, P(k) vraie) implique P(n) vraie]
alors P(n) est vraie pour tout n N.
Proposition 3.4 (Variante). Variante du theor`eme precedent pour montrer P (n) vraie pour
tout n n
0
:
_
I

_
: pour tout n n
0
, [ si (pour tout k N, n
0
k < n, P(k) vraie) implique P(n) vraie]
alors P(n) est vraie pour tout n n
0
.
9
Exemple. Soit P (n) : n est decomposable en produit de facteurs premiers. Montrons que
P (n) est vraie pour tout n 2.
P(2) est vraie car 2 est premier, donc produit dun seul facteur premier.
Soit maintenant n > 2. On veut montrer (I

) : Si k N, 2 k < n, k est decomposable en


produit de facteurs premiers, alors n est decomposable en produit de facteurs premiers. Il y
a deux cas :
1. si n est premier, n est bien un produit dun seul facteur premier.
2. si n nest pas premier, alors n = n
1
n
2
o` u n
1
, n
2
> 1 et n
1
, n
2
< n.
Par hypoth`ese dinduction, on a :
2 n
1
< n donc P (n
1
) est vraie
2 n
2
< n donc P (n
2
) est vraie
Or dapr`es la propriete P, on a :
P (n
1
) vraie : n
1
= p
1
p
i
1
o` u les p
j
sont premiers
P (n
2
) vraie : n
2
= q
1
q
i
2
o` u les q
j
sont premiers
De ce fait, n = p
1
p
i
1
q
1
q
i
2
est decomposable en produit de facteurs premiers.
Ainsi, P (n
1
) et P (n
2
) vraies P (n) vraie. On en conclut que P (n) est vraie pour
tout n 2.
3.3 Fonctions denies par recurrence
Denition 3.5 (Fonction denie par recurrence). Une fonction sur N est denie par recurrence
par :
Base : une valeur initiale f(0) = a N
Induction : f(n + 1) = h(n, f(n)) pour tout n 0
Exemple 1. Soit la fonction f denie par recurrence par :
_
Base : f (0) = 1
Induction : f(n + 1) = 2 f(n)
Prouvons par recurrence sur n que f (n) = 2
n
.
Base : f (0) = 1 = 2
0
Induction : Supposons f (n) = 2
n
.
Alors f (n + 1) = 2 f (n) = 2 2
n
= 2
n+1
do` u le resultat.
Exemple 2. Donner lecriture explicite de la fonction f denie par recurrence par :
_
Base : f (0) = 1
Induction : f (n + 1) = f (n) + 3
Montrons `a laide dune recurrence sur n que f (n) = 3n + 1.
Base : f (0) = 1 = 3 0 + 1
Induction : Supposons f (n) = 3n + 1.
Alors f (n + 1) = f(n) + 3 = (3n + 1) + 3 = 3(n + 1) + 1 do` u le resultat.
10
4 Induction structurelle
Linduction structurelle generalise la recurrence sur N.
4.1 Ensembles denis par induction
Un ensemble X est deni inductivement par la donnee de :
(B) un ensemble initial X
0
qui doit etre contenu dans X
(I) un ensemble de r`egles, sous forme doperations, pour construire de nouveaux elements
de X.
Lensemble X est alors le plus petit ensemble (pour linclusion) satisfaisant ces conditions.
Exemple 1. Determiner le sous-ensemble X de N deni inductivement par :
(B) 1 X
(I) si x X alors x + 2 X
Exemple 2. On se donne un symbole a et une operation unaire s. Determiner lensemble
T deni inductivement par :
(B) a T
(I) si t T alors s(t) T
Remarquons que lexemple 1 est un cas particulier de lexemple 2 avec a = 1 et loperation
s : N N denie par s(x) = x + 2.
Exemple 3. On consid`ere lalphabet A = {a, b}. Determiner le sous-ensemble L de A

deni inductivement par :


(B) L
(I) si u L alors aub L
Exemple 4. On se donne deux symboles a et b, et une operation binaire . Decrire graphi-
quement lensemble T deni inductivement par :
(B) a et b sont dans T
(I) si t
1
et t
2
sont dans T alors (t
1
, t
2
) T
Arbres binaires. On se donne un alphabet A auquel on ajoute les 4 symboles ( , ) et on
denit inductivement lensemble AB des arbres binaires sur A par :
(B) AB
(I) si g et d sont dans AB alors pour toute lettre a A, (a, g, d) appartient `a AB.
La forme generale dun arbre binaire construit `a partir dune lettre a et de sous-arbres g et d
peut etre representee par le dessin suivant :
a
Sous-arbre d
g
d
11
Pour A = {a, b}, on a par exemple :
b
b
a
b
b
a

(b, , )
(b, (a, , ), )
(b, (b, , ), (a, , ))
Termes. Les termes sont un cas particulier darbres, mais plus necessairement binaires. On
consid`ere des symboles de fonctions ranges selon leur nombre darguments : F
0
est lensemble
des symboles de constantes, correspondant aux fonctions sans arguments, F
1
contient les
operations unaires (`a un seul argument), F
2
les operations binaires, etc. Lensemble des termes
sur
i0
F
i
est lensemble T deni inductivement par :
(B) F
0
T , donc toutes les constantes sont des termes
(I) si f est une fonction de F
n
(`a n arguments) et si t
1
, . . . , t
n
sont dans T alors
f(t
1
, . . . , t
n
) appartient aussi `a T .
Remarquer que les exemples 2 et 4 ci-dessus sont directement des cas particuliers de cette
denition. De plus, un terme de la forme f(t
1
, . . . , t
n
) peut etre represente par un arbre ayant
pour racine f et avec n ls t
1
, . . . , t
n
.
4.2 Fonctions denies par induction structurelle
Sur un ensemble X deni inductivement, on peut denir une fonction g comme suit :
Base : g(x) est donne explicitement pour tout x X
0
.
Induction : un procede pour calculer limage par g dun element construit inductivement.
Exemple 1. Soit la fonction g denie par :
(B) g(0) = 1
(I) g(n + 1) = (n + 1) g(n)
La fonction f est alors denie explicitement par g: N N

n n!
Exemple 2. Pour lexemple 1.4, donner une denition inductive de la fonction nba qui
associe `a tout element t T le nombre de a apparaissant dans t.
Fonctions associees `a un arbre binaire.
La hauteur dun arbre binaire est denie inductivement par :
(B) h() = 0
(I) h((a, g, d)) = 1 +max(h(g), h(d))
12
Sur lalphabet A = {a, b, c, d, e} :
a
b
c
d
e
3
Le parcours prexe dun arbre binaire De haut en bas et de gauche `a droite est
deni inductivement par :
(B) pre() =
(I) pre((a, g, d)) = a pre(g)pre(d)
Pour larbre ci-dessus pre(t) = a c b d e.
Remarquons que deux arbres binaires di" erents peuvent avoir le meme parcours prexe.
a
b
c
d
e
f
g
a
c
e
g
f
d
b
t = t

=
abcdefg = pre(t) = pre(t

)
Fonctions devaluation (ou dinterpretation) des termes.
Dans la denition generale des termes donnee precedemment, les constantes de F
0
ainsi que
les autres fonctions sont seulement des symboles. Pour interpreter (ou evaluer) un ensemble
de termes, il faut dabord denir les operations et les valeurs des constantes.
Dans lexemple 1.4, on peut se placer dans le domaine D = N, avec la valeur 2 pour a
et la valeur 3 pour b. Ceci correspond `a associer `a a lelement a
D
= 2 de D et ` a b lelement
b
D
= 3, cest-`a-dire en general `a associer aux constantes de F
0
des valeurs dans D.
Il faut aussi dire ce que fait loperation , cest le role dune autre fonction dinterpretation

D
: D D D. Prenons par exemple ici laddition binaire + pour
D
.
On peut alors calculer linterpretation (ou la valeur) de chaque terme de t T , notee h

(t),
grace `a linduction. La notation h

provient du fait quon etend lapplication h : F


0
D
denie par h(a) = a
D
pour tout a F
0
.
Par exemple, la valeur du terme t
1
= (a, b) est obtenue en appliquant
D
(donc +) aux
valeurs de a et b, donc h

(t
1
) = 2 + 3 = 5. Ceci sexprime formellement par : h

((a, b)) =

D
(h

(a), h

(b)). De meme, la valeur de t


2
= (b, b) est h

(t
2
) = 3 + 3 = 6. Pour calculer
maintenant la valeur de t = ((a, b), (b, b)), il su! t de remplacer les deux termes par leur
valeur :
h

(t) = h

((t
1
, t
2
)) = h

(t
1
) +h

(t
2
) = 11.
La proposition suivante decrit ce procede dans le cas general.
Proposition 4.1. Soit T lensemble des termes construits sur
i0
F
i
. Soit D un ensemble,
h une application de F
0
dans D qui associe `a toute constante a la valeur a
D
et, pour chaque
fonction f de
i0
F
i
avec n arguments, une application f
D
: D
n
D.
13
Alors il existe une unique application h

: T D denie inductivement par :


(B) si a F
0
alors h

(a) = a
D
,
(I) si t = f(t
1
, . . . , t
n
) pour une fonction f de F
n
(`a n arguments) et n termes t
1
, . . . , t
n
,
alors h

(t) = f
D
(h

(t
1
), . . . , h

(t
n
)).
4.3 Preuves par induction structurelle
Denition 4.2. Preuve par induction dune propriete P sur un ensemble X deni par in-
duction.
Base (B) : si P(x) est vraie pour tout x X
0
Induction (I) : si P est preservee par les operations de construction.
Alors P(x) est vraie pour tout x X.
Exemple 1.3. Montrer par induction que dans le langage L de lexemple 1.3, tout mot
poss`ede autant de a que de b.
Exemple 1.4. Dans lexemple 1.4, On peut montrer par induction que h

(t) = 2nba(t) +
3nbb(t) o` u nba(t) est le nombre de a dans t (denie dans la section precedente) et de meme
nbb(t) est le nombre de b dans t.
Induction sur N. Lensemble N est deni inductivement par :
(B) : 0 N
(I) : si n N alors n + 1 N
Pour montrer quune proposition P (n) est vraie pour tout n N, on doit montrer :
(B) : P(0) vraie
(I) : Si P(n) est vraie, alors P(n + 1) est vraie
On retrouve donc le principe de recurrence comme un cas particulier.
14
5 Relations dordre
5.1 Denitions
Denition 5.1 (Relation dordre). Une relation dordre (large) sur un ensemble E est une
relation binaire R sur E reexive, antisymetrique et transitive.
A une relation dordre , on associe la relation notee denie par : x y si x y et
x = y. Donc = Id, et aussi = \Id. La relation est appelee un ordre strict.
Denition 5.2 (Ordre total et ordre partiel). Une relation dordre sur un ensemble E est
dite totale si deux elements quelconques de E sont comparables par cette relation.
Une relation dordre qui nest pas totale est appelee un ordre partiel : il existe des elements
non comparables.
Denition 5.3 (Applications monotones et isomorphismes densembles ordonnes). Soient E
1
et E
2
deux ensembles ordonnes respectivement par
1
et
2
. Une application f de E
1
dans
E
2
est monotone si pour toute paire (x, y) delements de E
1
, si x
1
y alors f(x)
2
f(y).
Les ensembles E
1
et E
2
sont isomorphes sil existe une bijection f de E
1
sur E
2
telle que f
et f
1
sont monotones.
Exemples dordres `a retenir.
Sur N, lordre naturel est un ordre (large) total.
Sur N, la relation de divisibilite | est denie par : n | m si n divise m cest-` a-dire sil
existe un entier k tel que m = kn. Cest un ordre partiel.
Sur A

, la relation prexe est denie par : u v si v commence par u cest-` a-dire sil
existe un mot w de A

tel que v = uw. Cest un ordre partiel.


Sur A

, pour un ordre total donne sur lalphabet A, lordre lexicographique (ou al-
phabetique) est un ordre total.
Sur NN = N
2
, lordre produit de lordre naturel deni par (a
1
, b
1
) (a
2
, b
2
) si a
1
a
2
et b
1
b
2
est un ordre partiel.
Si E est un ensemble, lensemble P(E) des parties de E est ordonne par inclusion. Cest
un ordre partiel.
Majorants, borne superieure, plus grand element, elements maximaux. Les mi-
norants, borne inferieure, plus petit element, elements minimaux sont obtenus en considerant
les ordres opposes.
Denition 5.4. Soit (E, ) un ensemble muni dune relation dordre et A une partie de E.
Un element M de E est un majorant de A si a A, a M.
On note Maj(A) = {M E | a A, a M} lensemble des majorants de A dans E.
Le plus grand element de A, sil existe, est lunique element M de A Maj(A) (cest-
` a-dire un majorant de A dans A).
La borne superieure S de A dans E, si elle existe, est le plus petit element de Maj(A).
Un element N de A est un element maximal de A si aucun element de A nest plus
grand que lui : il appartient `a A et a A, N a N = a.
15
5.2 Ordres bien fondes
Soit (E, ) un ensemble ordonne. Une suite (a
n
)
nN
delements de E est decroissante si
pour tout n N, a
n+1
a
n
. Elle est strictement decroissante si pour tout n N, a
n+1
a
n
,
cest-` a-dire a
n+1
a
n
et a
n+1
= a
n
.
Denition 5.5 (Ordre bien fonde). Un ordre sur un ensemble E est bien fonde sil nexiste
pas dans E de suite innie strictement decroissante pour .
Ainsi, si lon peut associer au corps dune boucle une valeur qui decroit strictement `a
chaque tour de la boucle (ou su! samment reguli`erement), on construit une suite strictement
decroissante. Si cette suite est ` a valeurs dans un ensemble ordonne (E, ) tel que lordre
est bien fonde, on obtient une preuve de terminaison.
Exemples. Lordre naturel est bien fonde sur lensemble N, mais pas sur lensemble Z.
Proposition 5.6. Un ordre est bien fonde sur un ensemble E si et seulement si toute
partie non vide de E a (au moins) un element minimal pour .
Demonstration. On montre lequivalence des negations.
Supposons dabord quil existe une suite (a
n
)
nN
strictement decroissante, alors la partie
A = {a
n
| n N} na pas delement minimal.
Reciproquement, soit A E une partie non vide de E sans element minimal. Alors pour
tout x A, x nest pas minimal, donc il existe y X tel que y x.
Soit f : A A
x y tel que y x
On denit la suite (a
n
)
nN
par : a
0
A est un element quelconque de A (possible car A
non vide) et a
n+1
= f(a
n
) pour tout n N. Cette suite est strictement decroissante, par
construction.
Proposition 5.7 (Corollaire : principe dinduction). Soit (E, ) un ensemble muni dun
ordre bien fonde, et soit P une propriete des elements de E. On a alors la propriete suivante
dinduction :
Si (I) : pour tout element x de E, on a : si (pour tout y x, P(y) vraie) alors P(x) vraie,
alors P est vraie pour tout element de E.
Demonstration. Soit A = {x E | P(x) fausse} et supposons (I) vraie pour P et E. Nous
allons montrer que A = .
Par labsurde, supposons que A est non vide. Dapr`es la proposition precedente, il existe
un element minimal a
0
A donc :
P(a
0
) est fausse et
a
0
minimal dans A, donc pour tout y a
0
, y / A, do` u P(y) est vraie.
Mais par (I), P(a
0
) est vraie ce qui est une contradiction. De ce fait, A = .
16
5.3 Exemples et contre-exemples
Ordres usuels.
1. Lordre naturel sur N est bien fonde (avec 0 comme plus petit element).
2. Remarquons que la presence dun plus petit element ne su! t pas en general : pour R
+
,
lensemble des nombres reels positifs ou nuls, muni egalement de lordre usuel, 0 est
aussi un plus petit element mais il existe une suite (innie) strictement decroissante :
u
n
=
1
n
pour n N, n 1.
3. Lensemble Z nest pas un ensemble bien fonde pour lordre usuel. En e" et, il existe une
suite strictement decroissante (x
n
)
nN
denie par :
x
0
= k, k Z
x
n+1
= x
n
1
Divisibilite. La divisibilite est un ordre bien fonde sur N.
Ordres sur le monode libre A

.
1. Lordre lexicographique nest pas un ordre bien fonde car (a
n
b)
nN
est une suite stric-
tement decroissante : b ab a
2
b a
n
b a
n+1
b Remarquons que pourtant cet
ordre admet un plus petit element .
2. Lordre prexe est un ordre bien fonde car une suite strictement decroissante est formee
de mots dont la longueur decrot strictement (dans N).
Ordres produits. Considerons N N. Il y a (entre autres) deux possibilites :
1. Lordre produit de lordre naturel est un ordre partiel bien fonde.
2. Lordre lexicographique (strict) sur N N est deni par :
(a
1
, b
1
) < (a
2
, b
2
) si a
1
< a
2
ou (a
1
= a
2
et b
1
< b
2
).
Lordre large associe est obtenu naturellement par :
(a
1
, b
1
) (a
2
, b
2
) si (a
1
, b
1
) < (a
2
, b
2
) ou (a
1
= b
1
et a
2
= b
2
).
Cest aussi un ordre bien fonde.
Pour deux ensembles ordonnes E et F, on peut de mani`ere analogue denir di" erents ordres
sur le produit E F.
17
6 Syst`emes de transitions et automates nis
6.1 Motivations et exemples
Les automates nis decrivent une classe restreinte de programmes dans laquelle les
questions sont faciles `a traiter.
Dune fa con generale, un des objectifs de linformatique est de formaliser des probl`emes
et de construire, lorsque cest possible, des programmes pour les resoudre. Un probl`eme est
formalise comme un langage sur un alphabet (i.e. un ensemble de mots).
A un probl`eme P, on associe un langage L
P
sur un alphabet A, cest-`a-dire un sous-
ensemble de A

, avec la propriete suivante : un mot w de A

est solution de P ssi il appartient


`a L
P
.
Exemple. Sur lalphabet A = {0, 1}, un mot represente lecriture binaire dun entier. Cet
entier est pair si le mot qui lui correspond se termine par 0. Ainsi, le probl`eme Pair peut
etre associe au langage L
Pair
= A

0 qui contient exactement tous les mots se terminant par


un 0.
Pour decrire ces solutions de mani`ere operationnelle (par un programme), letape suivante
est de chercher sil est possible de construire un automate ni acceptant le langage L
P
.
Pour lexemple des ecritures en binaire des entiers pairs :
wait fin
0
1
0
Autres exemples : digicode, traversee de la rivi`ere par un loup, une ch`evre et une salade,
barman aveugle.
6.2 Denitions
Denition 6.1. Un syst`eme de transitions sur un alphabet A est un triplet T = (S, T, I) o` u
S est lensemble des congurations, T S AS est lensemble des transitions et I est un
sous-ensemble de S contenant les congurations initiales.
On note s
a
s

une transition (s, a, s

) de T. La lettre a est letiquette de la transition. Une


execution de T est un chemin dans ce graphe etiquete, cest-` a-dire une suite de transitions
(s
0
, a
1
, s
1
)(s
1
, a
2
, s
2
) . . . qui secrit aussi s
0
a
1
s
1
a
2
s
2
. . ., commen cant dans une congura-
tion initiale (s
0
I). Par extension, le mot w = a
1
a
2
. . . est letiquette (ou trace) du chemin
(ou de lexecution).
Exemple. Dessiner un syst`eme de transitions T representant le fonctionnement dun tampon
de taille non bornee. Lalphabet A = {p, c} decrit les deux operations possibles sur ce tampon :
p est une operation de production qui ajoute un element au tampon, tandis que c est une
operation de consommation qui retire un element du tampon.
Decrire le langage L
pc
des mots sur lalphabet A qui etiquettent des executions de T .
Donner aussi une machine `a un compteur acceptant L
pc
.
18
Denition 6.2. Un automate ni est un syst`eme de transitions
dont lensemble des congurations est ni (les elements sont alors appeles des etats),
auquel on adjoint un sous-ensemble F S detats nals.
Si A = (S, T, I, F) est un automate ni sur A, on dit quun mot w de A

est accepte par


A sil existe une execution nie s
0
a
1
s
1
a
2
s
2
. . .
an
s
n
commen cant dans un etat initial
(s
o
I), se terminant dans un etat nal (s
n
F) et ayant w comme etiquette.
Le langage de A, note L(A), est lensemble des mots acceptes par A.
Denition 6.3. Soit A un alphabet. Un langage L de A

est reconnaissable sil existe un


automate ni A tel que L = L(A). Deux automates nis sont equivalents sils acceptent le
meme langage.
Denition 6.4. Un automate ni A = (S, T, I, F) est complet si pour tout etat s S et
pour toute lettre a A, il existe (au moins) une transition partant de s avec letiquette a.
Partant dun automate ni A = (S, T, I, F), on construit facilement un automate complet
B = (S {p}, I, T T

, F) equivalent `a A (donc acceptant le meme langage). Letat p appele


puits est un nouvel etat ajoute ` a S et T

contient les transitions suivantes :


pour tout etat s et toute lettre a tels quil nexiste pas de transition detiquette a sortant
de s, la transition s
a
p est dans T

,
les transitions p
a
p, pour toute lettre a A, sont dans T

.
Exemple. Soit lautomate A suivant sur lalphabet A = {a, b, c} qui accepte le langage
L = ab

c. On le compl`ete en un automate equivalent B, cest-`a-dire sans changer le langage


accepte :
0 1 2
b
a c
A :
0 1 2
puits
b
A
a c
b, c
a
A
B :
6.3 Langages non reconnaissables
Il ne faut pas croire que tout langage est reconnaissable. Par exemple :
Proposition 6.5. Il nexiste pas dautomate ni acceptant le langage L = {a
n
b
p
, n p} sur
lalphabet A = {a, b}.
Demonstration. Par labsurde, on suppose quil existe un automate ni A = (S, T, I, F)
acceptant L et on note N le nombre detats de cet automate. On consid`ere alors le mot
w = a
N+1
b
N+1
de L, et un chemin associe dans lautomate : s
0
a
N+1
s
1
b
s
2

b
s
N+2
19
o` u s
0
est un etat initial et s
N+2
un etat nal. Parmi les N + 2 etats s
1
, . . . , s
N+2
, il y en a
deux egaux : s
i
= s
j
pour i < j, ce qui correspond `a une boucle dans lautomate. Donc on
peut reecrire le chemin acceptant w en : s
0
a
N+1
s
1
b
p
1
s
i
b
p
2
s
i
b
p
3
s
N+2
. Le mot b
p
2
, qui
est letiquette de la boucle, peut etre repete un nombre arbitraire de fois, ce qui produit des
mots acceptes par lautomate, mais qui nappartiennent pas ` a L puisquils ont un nombre de
b strictement superieur au nombre de a. Par exemple w

= a
N+1
b
p
1
+2p
2
+p
3
= a
N+1
b
N+1+p
2
.
On obtient donc une contradiction.
Remarque 1. En transformant a en p et b en c, le langage L est un sous-ensemble de L
pc
,
lensemble des mots associes au syst`eme des productions/consommations avec un tampon non
borne. On se rappelle que ce langage pouvait etre decrit par un syst`eme de transition avec
un nombre inni detats (ou par un automate avec un compteur). En utilisant le resultat
ci-dessus, ainsi que des proprietes etablies dans le chapitre suivant, on peut aussi montrer
queil nexiste pas dautomate ni acceptant L
pc
.
Remarque 2. Ce raisonnement se generalise en une condition necessaire pour quun langage
soit reconnaissable, appelee lemme diteration ou lemme de letoile.
7 Langages reconnaissables
Rappelons quun langage sur un alphabet A est un sous-ensemble de A

et quun langage
L est reconnaissable sil est accepte par un automate ni. Ce chapitre examine les proprietes
de cloture des langages reconnaissables et donne une condition necessaire et su! sante pour
quun langage soit reconnaissable.
7.1 Union, intersection
Proposition 7.1. Si L
1
et L
2
sont deux langages reconnaissables alors L
1
L
2
et L
1
L
2
sont aussi reconnaissables.
On consid`ere deux automates nis A
1
= (S
1
, T
1
, I
1
, F
1
) et A
2
= (S
2
, T
2
, I
2
, F
2
) et on note
L
1
= L(A
1
) et L
2
= L(A
2
) les langages acceptes respectivement par ces deux automates.
En supposant les ensembles detats S
1
et S
2
disjoints, un automate ni acceptant
L
1
L
2
est deni par A = (S
1
S
2
, T
1
T
2
, I
1
I
2
, F
1
F
2
). Autrement dit, il su! t de
considerer ces deux automates comme un seul, et il ny a pas dambigute sur les transitions
du fait que S
1
S
2
= .
Pour lintersection, on realise une sorte de synchronisation entre les deux automates,
en simulant des executions parall`eles dans A
1
et A
2
. Un automate ni acceptant L
1
L
2
est
deni par B = (S
1
S
2
, T, I
1
I
2
, F
1
F
2
), les transitions de T etant obtenues pour toute
lettre a A par :
(s
1
, s
2
)
a
(s

1
, s

2
) est dans T ssi s
1
a
s

1
est dans T
1
et s
2
a
s

2
est dans T
2
7.2 Complementaire et determinisation
Denition 7.2. Un automate ni A = (S, T, I, F) sur A est deterministe si :
il a un unique etat initial : I = {s
0
},
20
pour tout etat s et toute lettre a, il existe au plus une transition detiquette a sortant de
s, cest-`a-dire : si s
a
s
1
et s
a
s
2
alors s
1
= s
2
.
On a alors :
Proposition 7.3. Pour tout automate ni A, on peut construire un automate ni deterministe
D qui accepte le meme langage que A (donc les deux automates A et D sont equivalents).
Soit A = (S, T, I, F), lautomate D est deni par D = (P(S),

T, {I},

F) avec :
lensemble des etats de D est lensemble P(S) des parties de S,
lunique etat initial de D est la partie I,


F = {P S | P F = } (une partie est nale si elle contient au moins un etat nal
de A),


T contient les transitions de la forme P
a
P

, pour deux parties P et P

de S, avec
P

= {s

S | il existe un etat s P tel que s


a
s

est une transition dans T}.


Proposition 7.4 (Corollaire). Si L est reconnaissable alors A

\ L est aussi reconnaissable.


Demonstration. En e" et, on consid`ere un automate D = (S, T, {s
0
}, F) deterministe et
complet D = (S, T, {s
0
}, F) acceptant le langage L (au besoin en utilisant la construction
precedente `a partir dun automate quelconque acceptant L). Lautomate C = (S, T, {s
0
}, S\F)
accepte alors A

\L, puisque tous les etats qui etaient naux ne le sont plus et reciproquement.
Attention, cette construction nest valable que parce que lautomate de depart est deterministe
(un chemin au plus pour tout mot en entree) et complet (un chemin au moins pour tout mot
en entree).
7.3 Produit, etoile
Proposition 7.5. Si L
1
et L
2
sont deux langages reconnaissables alors L
1
L
2
est aussi recon-
naissable. Si L est un langage reconnaissable alors L

est aussi reconnaissable.


Soient A
1
= (S
1
, T
1
, I
1
, F
1
) et A
2
= (S
2
, T
2
, I
2
, F
2
) deux automates nis avec L
1
= L(A
1
)
et L
2
= L(A
2
). Un automate ni acceptant L
1
L
2
est deni par B = (S
1
S
2
, T
1
T
2
J, I, F
2
)
avec : I =
_
I
1
si I
1
F
1
=
I
1
I
2
sinon (cas o` u L
1
)
et J = {s
a
i | i I
2
sil existe f F
1
tq s
a
f T
1
}.
Ainsi, pour faire la jonction de A
1
avec A
2
, on proc`ede en ajoutant de nouvelles transi-
tions : pour toute transition allant vers un etat nal de A
1
, on ajoute une transition de meme
etiquette vers un etat initial de A
2
.
A
1
A
2
f s
a
i
a
Pour L = M

, on remarque que M

= M
+
{}, o` u M
+
=
_
n1
M
n
.
A partir dun automate A = (S, T, I, F) acceptant M, on construit un automate C qui accepte
M
+
: C = (S, T J, I, F) avec J = {s
a
i | i I et f F tq s
a
f dans T}.
21
A
f s
a
i
a
Il reste ensuite ` a realiser loperation pour lunion (comme au paragraphe precedent) avec
lautomate de M
+
et un automate acceptant {}.
7.4 Langages rationnels et theor`eme de Kleene
Denition 7.6. Soit A un alphabet. Lensemble des langages rationnels sur A est deni
inductivement par :
(B) , {} et {a}, pour tout a A sont des langages rationnels,
(I) Si L
1
et L
2
sont des langages rationnels, alors L
1
L
2
et L
1
L
2
sont aussi des langages
rationnels, et si M est un langage rationnel, alors M

est aussi un langage rationnel.


Remarque : on note souvent + ` a la place de .
Theor`eme 7.7 (Theor`eme de Kleene). Un langage est rationnel ssi il est reconnaissable.
Demonstration. Montrons dabord par induction structurelle que tout langage rationnel est
reconnaissable.
Base. L = est accepte par lautomate suivant (qui na pas detat nal) : i
L = {} est accepte par : i
et L = {a} est accepte par lautomate : i f
a
Induction. L
1
L
2
, L
1
L
2
et M

: voir les paragraphes precedents.


Reciproquement, montrons que tout langage reconnaissable est rationnel.
Exemples. 1. Le langage accepte par lautomate A suivant :
i f
a, c
b
est L(A) = b

{a, c} qui peut secrire aussi b

(a +c). Il
sexprime donc bien ` a partir des elements de base et des operations speciees.
2. Moins facile, on voudrait calculer (sans se tromper) une expression rationnelle du lan-
gage accepte par lautomate ni ci-dessous.
0 1 2
a a
a
b
b
Dans le cas general, partant de A = (S, T, I, F), on consid`ere la famille dautomates
obtenus en prenant un etat quelconque s S comme etat initial : A
s
= (S, {s}, T, F) et on
22
note L
s
= L(A
s
) le langage accepte par A
s
(cest-`a-dire les mots acceptes par A en partant de
s). Si les transitions sortant de s sont s
a
1
s
1
, s
a
2
s
2
, . . ., s
ap
s
p
, on a legalite suivante :
L
s
=
_
a
1
L
s
1
+ +a
p
L
sp
+ si s est un etat nal
a
1
L
s
1
+ +a
p
L
sp
sinon
qui exprime que tout chemin de s vers un etat nal passe par un des s
i
(cest-`a-dire commence
par un des a
i
).
`
A partir de l`a, on resout le syst`eme dequations en utilisant la proposition 7.8 suivante :
Proposition 7.8 (Lemme dArden). Soient X et M deux langages et K un langage ne
contenant pas le mot vide . Lequation X = KX + M a pour unique solution X = K

M.
Autrement dit, K

M est lunique point xe de g: P (A

) P (A

)
X KX +M
.
On remarque que le langage accepte par A est : L(A) =

sI
L
s
. Donc si E
s
est lexpres-
sion rationnelle calculee par cette methode pour chaque langage L
s
, s S, alors lexpression
nale cherchee pour le langage L = L(A) est :

sI
E
s
.
Suite de lexemple 2. Pour cet automate, notons :
L
0
= L(A),
L
1
= L(A
1
) en prenant 1 comme etat initial,
L
2
= L(A
2
), lensemble des mots acceptes par A en partant de letat 2.
On obtient :
_
_
_
L
0
= aL
1
+ (1)
L
1
= aL
2
+bL
0
+ (2)
L
2
= bL
2
+aL
1
(3)
Dapr`es (3), on a L
2
= KL
2
+M avec K = {b} et M = aL
1
, donc L
2
= b

aL
1
.
On remplace dans (2) :
L
1
= ab

aL
1
+bL
0
+ = KL
1
+M avec K = ab

a et M = bL
0
+
Donc L
1
= (ab

a)

(bL
0
+ )
On remplace dans (1) :
L
0
= a (ab

a)

(bL
0
+ )
= a (ab

a)

.b
. .
K
L
0
+a (ab

a)

+
. .
M
Ce qui donne nalement pour le langage cherche, qui est justement L
0
:
L
0
= (a (ab

a)

[a (ab

a)

+ ]
7.5 Terminaison
Rappelons quun des probl`emes examines au debut du cours etait celui de larret dun
programme. Dans le cas de programmes decrits par des automates nis, ce probl`eme est facile
`a resoudre :
Theor`eme 7.9. Le probl`eme de larret est decidable (en temps polynomial) pour les auto-
mates nis.
23
Demonstration. Une execution dun automate ni sarrete dans un etat nal de cet automate.
On cherche donc un algorithme qui prend en entree un automate ni A = (S, T, I, F) sur un
alphabet A et decide sil existe une execution de cet automate partant dun etat de I et
atteignant un etat de F.
Soit donc A = (S, T, I, F) un automate ni sur un alphabet A. On denit, pour une partie
P de S, lensemble des successeurs des etats de P. Ce sont tous les etats quon peut atteindre
`a partir dun etat de P en une transition :
Post(P) = {s

S | il existe un etat s P et une lettre x A tels que s


x
s

}.
Lalgorithme consiste alors `a calculer une suite (P
n
)
nN
de parties de S denie par :
P
0
= I (on part de lensemble des etats initiaux),
P
n+1
= P
n
Post(P
n
) pour tout n 0.
La suite (P
n
)
nN
est une suite croissante de sous-ensembles de S, qui est ni. Donc la
suite est stationnaire ` a partir dun certain rang N, inferieur au nombre detats de lautomate
A. Lensemble P
N
, qui satisfait P
N
= P
N+1
, contient exactement tous les etats accessibles
depuis un etat initial. Il verie donc :
il existe une execution de A partant dun etat de I et atteignant un etat de F si et
seulement si P
N
F = .
7.6 Minimisation
Objectif : pour un langage L reconnaissable, trouver lautomate deterministe qui laccepte
avec un nombre minimal detats.
Exemple. Sur A = {a, b}, en considerant lautomate ci-dessous, on a limpression quon
pourrait fusionner les etats 3 et 6.
1 2 3
4 5 6
b b
a a a, b a, b
a b
a b
On consid`ere dans ce paragraphe des automates nis deterministes complets et monog`enes
(un automate A = (S, T, I, F) est monog`ene si tout etat s S est accessible depuis letat
initial).
Dans un automate deterministe et complet A = (S, T, I, F), on a la propriete suivante :
pour tout etat s S, pour tout mot u A

, il existe un unique s

tel que s
u
s

qui sera
note s

= s u
Denition 7.10. Soit A = (S, T, {i}, F) un automate ni deterministe complet et mo-
nog`ene. Deux etats s
1
et s
2
sont dits inseparables si u A

, s
1
.u F ssi s
2
.u F.
Autrement dit, si s
1
u
s

1
et s
2
u
s

2
alors
_
ou bien s

1
et s

2
sont tous deux dans F
ou bien ni lun ni lautre : s

1
/ F et s

2
/ F
Ils sont separables dans le cas contraire.
24
Proposition 7.11. La relation sur S denie par s
1
s
2
si s
1
et s
2
sont inseparables est une
relation dequivalence (appelee equivalence de Nerode).
De plus, si s
1
s
2
, alors u A

, s
1
.u s
2
.u
Exemple (suite). On verie que les classes pour sont : {1} , {2} , {5} , {4} , {3, 6}.
Remarque. En particulier, si s
1
s
2
ou bien s
1
F et s
2
F ou bien aucun des deux. De
plus, pour toute lettre a A, s
1
a s a.
Etant donne A = (S, T, {i}, F) et lequivalence de Nerode associee, on note [s] la classe
dun etat s pour et

S = S/ lensemble quotient.
En utilisant la remarque ci-dessus, on peut etendre loperation de changement detat aux
classes, en posant [s] a = [s a].
On denit alors lautomate quotient

A = (

S,

T, [i],

F) avec :

F = {[s] | s F}

T = {[s]
a
[s

] | s
a
s

dans A}
Theor`eme 7.12. Soit A un automate ni deterministe complet et monog`ene et L = L(A).
Alors

A est lunique (`a isomorphisme pr`es) automate minimal de A.
Methode de Moore : algorithme de calcul de . On denit une suite de relations
dequivalences :

0
est la relation initiale ` a deux classes F et S \ F
pour k 0, la relation
k+1
est denie par : s
1

k+1
s
2
si s
1

k
s
2
et a A, s
1
a
k
s
2
a
Proposition 7.13. Lalgorithme se termine : il existe un entier p tel que
p
=
p+1
, et
lequivalence de Nerode est
p
=.
Exemple (suite et n). On part des deux classes I = {1, 3, 5, 6} = F et II = {2, 4} = S \ F
qui denissent lequivalence
0
.
On construit lequivalence
1
en examinant les changements de classes (tableau de gauche) :
2 et 4 restent dans la meme classe ainsi que 3 et 6, mais 1 et 5 se comportent di" eremment
par b, de meme que 1 et 3 par a, et 5 et 3 par a aussi.
Ceci nous am`ene ` a creer quatre classes pour
1
: I = {1}, II = {2, 4}, III = {3, 6}, IV = {5},
qui sont reportees dans le tableau suivant (`a droite). En reiterant loperation, on construit

2
qui va separer 2 et 4 (`a cause de b).
s 1 2 3 4 5 6
cl(s) I II I II I I
cl(s a) II I I I II I
cl(s b) II I I I I I
s 1 2 3 4 5 6
cl (s) I II III II IV III
cl (s.a) II IV III IV IV III
cl (s.b) II III III I II III
On a larbre suivant :
25
S
{1, 3, 5, 6}
I
{1}
I
{1}
{5}
IV
{5}
{3, 6}
III
{3 , 6}
{2, 4}
II
{2, 4}
II
{2} {4}

2
Conclusion. On voit quajouter un etage de plus ne changera rien (3 et 6 sont clairement
inseparables). Donc on en deduit que =
2
. Lautomate minimal

A est construit ` a partir
des classes de
2
, en appliquant les transitions comme si elles sappliquaient `a un des etats
de la classe :
{1} {2}
{3, 6}
{4} {5}
b b
a a
a, b
a
b
a
b
26
8 Fonctions booleennes
8.1 Alg`ebre de Boole
Denition 8.1 (Alg`ebre de Boole). Une alg`ebre de Boole est un tuple B = (E, , , , , )
o` u E est un ensemble, et sont deux elements distincts de E, et sont deux operations
binaires, est une operation unaire, satisfaisant les proprietes suivantes :
Associativite : pour tous a, b, c E, (a b) c = a (b c) et (a b) c = a (b c)
Commutativite : pour tous a, b E, a b = b a et a b = b a
Distributivite dune loi par rapport ` a lautre : pour tous a, b, c E,
(a b) c = (a c) (b c) et (a b) c = (a c) (b c)
Absorption : pour tous a, b E, a (a b) = a et a (a b) = a
Idempotence : pour tout a E, a a = a et a a = a
Bornes : pour tout a E, a = , a = a et a = a, a =
Complementarite : pour tout a E, a a = et a a =
Exemples.
1. Soit E = P(A) pour un ensemble A non vide. On denit alors une alg`ebre de Boole avec :

A complementaire
2. Soit B = {0, 1}. On denit alors une alg`ebre de Boole avec :

0 (faux) 1 (vrai) ou (disjonction) et (conjonction) negation
Pour les calculs dans B, on note generalement + pour et . ou rien pour .
8.2 Fonctions booleennes
Denition 8.2 (Fonction booleenne). Soit n N. Une fonction booleenne `a n arguments est
une application f : B
n
B.
Remarque. Si n = 0, il y a deux fonctions constantes : 0, 1.
Si n = 1, il y a quatre fonctions : x 0, x 1, x x et x x.
Il y a 2
2
n
fonctions booleennes `a n arguments.
Exemple. Table de verite de la fonction NAND (`a deux arguments), denie par :
NAND(x, y) = x.y.
x
y
x.y
x y NAND(x, y)
0 0 1
0 1 1
1 0 1
1 1 0
27
Theor`eme 8.3. Toute fonction booleenne f ` a n arguments, (n 1), secrit comme combi-
naison de ses arguments ou de leurs complementaires avec somme et produit.
Exemple. NAND(x, y) = x y + x y +x y
Ce theor`eme se demontre par recurrence sur n, en utilisant le lemme suivant :
Lemme 8.4. Soit f une fonction booleenne `a n arguments.
Alors f(x
1
, . . . , x
n
) = x
1
f(1, x
2
, . . . , x
n
) +x
1
f(0, x
2
, . . . , x
n
)
Demonstration. Posons g(x
1
, . . . , x
n
) = x
1
f(1, x
2
, . . . , x
n
)+x
1
f(0, x
2
, . . . , x
n
) et montrons
que f = g, cest-`a-dire que pour tout n-uplet (x
1
, . . . , x
n
), g(x
1
, . . . , x
n
) = f(x
1
, . . . , x
n
).
Si x
1
= 1, g(x
1
, . . . , x
n
) = f(1, x
2
, . . . , x
n
) = f(x
1
, . . . , x
n
)
Si x
1
= 0, g(x
1
, . . . , x
n
) = f(0, x
2
, . . . , x
n
) = f(x
1
, . . . , x
n
)
Donc f = g.
8.3 Formes normales
Pour une fonction booleenne f `a n arguments, on note b = (b
1
, . . . , b
n
) un element de B
n
et D
f
= {b B
n
/f(b) = 1}.
Denition 8.5 (Formes disjonctives et conjonctives).
Une fonction est sous forme normale disjonctive (FND) si elle secrit comme une somme
de produits de x
i
ou x
i
.
Une fonction est sous forme normale conjonctive (FNC) si elle secrit comme produit
de sommes de x
i
ou x
i
.
Pour une fonction booleenne f `a n arguments, une forme normale disjonctive pour f est
obtenue par :
f(x
1
, . . . , x
n
) =

bD
f
M
b
(x
1
, . . . , x
n
) o` u M
b
(x
1
, . . . , x
n
) = x

1
x

n
avec x

i
=
_
x
i
si b
i
= 1
x
i
si b
i
= 0
Exemple. Pour la fonction NAND, on a : NAND(x, y) = x y
..
M
(0, 0)
(x, y)
+ x y
..
M
(0, 1)
(x, y)
+ x y
..
M
(1, 0)
(x, y)
Soit f une fonction booleenne `a n arguments, une forme normale conjonctive pour f est
obtenue par :
f(x
1
, . . . , x
n
) =

bD
f
S
b
(x
1
, . . . , x
n
) o` u S
b
(x
1
, . . . , x
n
) = x

1
+ +x

n
avec x

i
=
_
x
i
si b
i
= 0
x
i
si b
i
= 1
Exemple. Pour la fonction NAND, on a : NAND(x, y) = x + y
. .
S
(1, 1)
(x, y)
28
9 Calcul propositionnel
9.1 Syntaxe
Denition 9.1. Soit P un ensemble de symboles propositionnels (ou variables proposition-
nelles). Les formules du calcul propositionnel sont denies inductivement par :
(B) Si p P, alors p est une formule.
(I) Si F est une formule, alors F est une formule,
si F
1
et F
2
sont deux formules, alors (F
1
F
2
) et (F
1
F
2
) sont aussi des formules.
Exemple 1. F = ((q r) p)) est une formule utilisant les symboles p, q et r.
Denition 9.2. On denit deux nouvelles operations et par :
F
1
F
2
= F
2
F
1
F
1
F
2
= (F
1
F
2
) (F
2
F
1
)
Exemple 2. G = (p (p q)) est une formule utilisant les deux symboles p et q.
Remarque 1. Le symbole est parfois utilise au lieu de pour limplication et parfois
aussi au lieu de .
Remarque 2. Les formules du calcul propositionnel peuvent etre vues comme les termes
construits avec F
0
= P, F
1
= {} et F
2
= {, , , }, avec une notation inxe pour les
operateurs binaires, cest-`a-dire par exemple p q au lieu de (p, q).
Exemple 3. F = p ((q r) s) est une formule sur le sous-ensemble {p, q, r, s} de P,
qui peut etre representee (comme un terme) par un arbre :

q
s
r
9.2 Semantique : interpretation des formules
Exemple. On reprend lexemple ci-dessus. En associant des valeurs dans B = {0, 1} aux
propositions p, q, r et s, on peut obtenir une valeur (egalement dans B) pour la formule
F, et plus generalement pour toute formule portant sur des propositions de {p, q, r, s}. Par
exemple, linterpretation p 0, q 0, r 1, s 1 produit la valeur 1 pour F.
Dans le cas general, une interpretation est une application I : P B. A partir dune
telle application, qui associe `a chaque proposition de P une valeur dans B = {0, 1}, il est
possible de deduire une interpretation de toutes les formules de CP.
Denition 9.3. Soit I : P {0, 1} une interpretation des symboles de P. Le prolongement
de I aux formules du calcul propositionnel est lapplication encore notee I (au lieu de I

) de
CP {0, 1} denie inductivement par :
29
(B) Si F = p, alors I(F) = I(p).
(I) Si F = G, alors I(F) = I(G),
si F = F
1
F
2
alors I(F) = I(F
1
) +I(F
2
)
et si F = F
1
F
2
alors I(F) = I(F
1
)I(F
2
).
Ceci correspond bien ` a interpreter les symboles doperations de la fa con usuelle : comme la
negation, comme la conjonction et comme la disjonction.
Proposition 9.4. Soit I une interpretation. Alors :
1. I(F
1
F
2
) = I(F
2
) +I(F
1
)
2. I(F
1
F
2
) = I(F
1
).I(F
2
) +I(F
1
).I(F
2
)
Demonstration. Montrons le premier point de la proposition precedente, le point 2. est laisse
en exercice.
I(F
1
F
2
) = I(F
2
F
1
) par denition de F
1
F
2
= I(F
2
) +I(F
1
) par denition de I(X Y )
= I(F
2
) +I(F
1
) par denition de I(X)
donc I(F
1
F
2
) = I(F
2
) +I(F
1
)
Exemple. Soit F = p ((q r) s)
I(F) = I(p).I((q r) s)
= I(p).(I(q r) +I(s))
= I(p).(I(q) +I(r) +I(s))
I(F) = I(p).(I(q).I(r) +I(s)) dapr`es les lois de De Morgan
On retrouve le fait que si I(p) = 0, I(r) = 1, I(q) = 0 et I(s) = 1, alors I(F) = 1.
Denition 9.5. Soit F une formule.
F est valide (ou une tautologie) si pour toute interpretation I, I(F) = 1.
F est satisfaisable sil existe une interpretation I telle que I(F) = 1.
F est non satisfaisable si pour toute interpretation I, I(F) = 0.
Remarque 1. Lorsquune interpretation I est telle que I(F) = 1, on note parfois I F qui
se lit : I satisfait F ou F est vraie pour I .
Remarque 2. Une formule F est non satisfaisable si et seulement si F est valide.
valide
satisfaisable,
mais non valide
non satisfaisable
p p
p p
30
Exemple. Pour le probl`eme de Kerstin, Pollet et Anne, on consid`ere la formule : F =
A B C (en omettant les parenth`eses puisque linterpretation de est associative), avec
A = p (q r), B = p q et C = p r. Donc pour toute interpretation I, on a :
I(A) = I(q)I(r) +I(p), I(B) = I(q) + I(p) et I(C) = I(r) + I(p). Le probl`eme pose revient
`a chercher les interpretations I pour lesquelles F est vraie, cest-` a-dire I(F) = 1.
En posant x = I(p), y = I(q), z = I(r), on obtient I(F) = (yz +x)(x+y)(x+z), on retrouve
donc la fonction booleenne : f(x, y, z) = (yz +x)(x +y)(x +z), pour laquelle on avait vu que
f(x, y, z) = yz. Donc I(F) = 1 si et seulement si linterpretation I est telle que y = I(q) = 1
et z = I(r) = 1. Ainsi, on en deduit que Anne et Pollet iront `a la conference mais quon ne
sait pas pour Kerstin.
9.3 Equivalence semantique
Denition 9.6. Deux formules F et G sont equivalentes, note F G, si pour toute in-
terpretation I, on a : I(F) = I(G).
Remarque 1. La relation sur lensemble CP des formules du calcul propositionnel est une
relation dequivalence.
Exemples. Les formules p et (p) sont equivalentes, et en general :
F (F)
F G G F (car + est commutatif dans B)
(F G) (F G)
Remarque 2. On obtient des proprietes similaires `a lassociativite, lidempotence, labsorp-
tion, la distributivite, etc. mais avec au lieu de legalite. Ainsi, lensemble quotient CP/
est une alg`ebre de Boole.
Remarque 3. Sur P = {p
1
, . . . , p
n
}, une interpretation I : P B peut etre identiee au
n-uplet de ses valeurs I = (I(p
1
), . . . , I(p
n
)) B
n
. On peut donc associer `a toute formule F
sur P une fonction booleenne g
F
: B
n
B denie par g
F
(I) = I(F). Ainsi :
Proposition 9.7. Lensemble des fonctions booleennes est en bijection avec lensemble CP/
(qui contient les formules du calcul propositionnel `a equivalence pr`es).
Exemple. Soit f : B
2
B
(x, y) x +y
La formule F de CP qui lui est associee est (p q) sur {p, q}.
Cette correspondance permet dassocier ` a toute formule F une formule F

sous forme nor-


male conjonctive (FNC) et une formule F

sous forme normale disjonctive (FND), qui sont


equivalentes `a F.
9.4 Consequence semantique
Denition 9.8. Pour deux formules F et G, on dit que G est consequence de F, ou que F
satisfait G, note F |= G si pour toute interpretation I, si I(F) = 1, alors I(G) = 1.
Proposition 9.9. F satisfait G ssi (F G) est valide.
Demonstration. Montrons lequivalence des negations, cest-`a-dire : F ne satisfait pas G ssi
(F G) nest pas valide.
31
Si F ne satisfait pas G, alors, par denition, il existe une interpretation I telle que
I(F) = 1 et I(G) = 0. Pour cette interpretation I, on a I(F G) = I(F) +I(G) = 0, donc
(F G) nest pas valide.
Reciproquement, si (F G) nest pas valide, alors il existe une interpretation I telle
que I(F G) = 0, avec I(F G) = I(F) +I(G). Pour que la somme soit nulle, il faut que
I(F) = 1 et I(G) = 0, donc F ne satisfait pas G.
Conclusion : F satisfait G ssi (F G) est valide.
Proposition 9.10. F est equivalente `a G ssi F G est valide.
La demonstration reprend le schema precedent, elle est laissee en exercice. On peut aussi
verier que F G ssi F |= G et G |= F et utiliser la proposition precedente.
On etend les denitions de la consequence semantique |= `a des ensembles de formules.
Denition 9.11. Soit F = {F
1
, . . . , F
n
} un ensemble ni de formules et G une formule.
On dit que F est satisfaisable sil existe une interpretation I telle que pour toute formule
F F, on ait I(F) = 1. Donc F est satisfaisable si la formule
_
n
i=1
F
i
est satisfaisable.
On note F |= G si
_
n
i=1
F
i
|= G, cest-`a-dire : pour toute interpretation I, si pour toute
formule F F, I(F) = 1, alors I(G) = 1.
Exemple. Montrer que H = {p, p q, q} nest pas satisfaisable.
Denition 9.12. Un sequent est une paire (F, G) o` u F est un ensemble de formules et G
une formule. Le sequent (F, G) est valide si F |= G.
Exemple. Soient F = {p, p q} et G = q, on verie que (F, G) est un sequent valide.
Montrons que pour toute interpretation I, si pour toute F F, I(F) = 1, alors I(G) = 1.
Ceci revient ` a montrer (p) (p q) |= q.
Supposons I(p) = I(p q) = 1. Or I(p q) = I(p) + I(q) = 1. Mais comme I(p) = 1,
on a I(p) = 0 et I(q) = 1. Ainsi, (F, G) est un sequent valide.
Remarque. Soit F

lensemble obtenu en rempla cant dans F un des F


i
par F

i
tel que F
i
F

i
.
Alors :
- F est satisfaisable ssi F

est satisfaisable et
- (F, G) est valide ssi (F

, G) est valide.
Proposition 9.13. Soit H un ensemble de formules, et F, G deux formules. On a les
equivalences suivantes :
1. H |= G ssi H {G} est non satisfaisable.
2. H {F} |= G ssi H |= (F G)
Demonstration. 1. On demontre lequivalence des negations.
Supposons H {G} satisfaisable.
Alors il existe une interpretation I telle que I(F) = 1 pour toute formule F de H et
I(G) = 1, donc I(G) = 0.
Donc on na pas H |= G.
Reciproquement, supposons que H |= G est faux. Alors il existe une interpretation I
telle que I(F) = 1 pour toute F de H et I(G) = 0.
Alors I(G) = 1 donc I satisfait H {G}.
32
2. Montrons cette proposition `a laide dequivalences.
H {F} |= G ssi H {F, G} non satisfaisable dapr`es (1.)
ssi H {(F G)} non satisfaisable
ssi H |= (F G) encore par (1.)
9.5 Consequence logique (ou deduction)
Denition 9.14. Un sequent (F, G) est dit prouvable, note F G, sil est obtenu apr`es un
nombre ni dapplications des six r`egles suivantes, o` u H est un ensemble de formules, F et
G des formules :
(a) Utilisation dune hypoth`ese : si F H, alors H F
(b) Augmentation dhypoth`ese : si G / H et H F, alors H {G} F
(c) Modus ponens : si H (F G) et H F, alors H G
(d) Retrait dhypoth`ese (synth`ese) : si H {F} G, alors H (F G)
(e) Double negation : H F ssi H F
(f ) Absurde : si H {F} G et H {F} G, alors H F
Exemple. Preuve de la demonstration par contraposee :
On veut prouver : p q (q p)
1. {p q, q, p} p dapr`es a)
2. {p q, q, p} q dapr`es a)
3. {p q, q, p} p q dapr`es a)
4. {p q, q, p} q dapr`es c) appliquee `a 1 et 3
5. {p q, q} p dapr`es f) sur 2 et 4
6. {p q} (q p) dapr`es d)
Theor`eme 9.15. Un sequent (F, G) est valide ssi il est prouvable.
Remarque. Signication des deux sens de lequivalence :
Sens : Completude - Ce qui est vrai peut etre prouve.
Sens : Correction/adequation : Ce qui peut etre prouve est vrai.
Principe de la demonstration de correction. Par induction sur la longueur de la preuve.
A partir dun sequent valide, en appliquant une des six r`egles a), ..., f) on obtient un nouveau
sequent valide.
Par exemple avec la r`egle a) :
On suppose que F G a ete obtenu par la r`egle a), donc : G F. Si I est une interpretation
telle que I(F) = 1 pour toute formule F de F, alors I(G) = 1 puisque G F, donc F |= G
et le sequent est valide.
33
10 Logique du premier ordre
La logique du premier ordre enrichit le calcul propositionnel en utilisant :
des termes construits avec des variables et des fonctions,
des formules construites ` a partir de relations sur les termes, avec des operateurs booleens
et des quantications sur les variables.
Par exemple F : xyR(x, y) est une formule de la logique du 1er ordre. Dans cette formule, x
et y sont des variables et R(x, y) est une formule atomique construite en utilisant une relation
binaire R.
Si F est interpretee sur les entiers naturels, avec pour R la relation <, on obtient : Pour
tout entier x, il existe un entier y strictement plus grand que x, ce qui exprime que
lensemble des entiers naturels na pas delement maximal.
Si F est interpretee sur lensemble des personnes avec pour R la relation defnie par
R(x, y) si y est la m`ere de x, la formule exprime que toute personne a une m`ere.
Si F est interpretee dans les mondes de Tarski, avec pour R la relation LeftOf, elle
exprime que tout objet est ` a gauche dun autre objet.
10.1 Syntaxe
On consid`ere un ensemble G de symboles de fonctions et un ensemble R de symboles de
relations. En particulier, on notera :
C = G
0
lensemble des symboles de fonctions sans argument, cest-`a-dire les constantes,
P = R
0
lensemble des symboles de relations darite nulle, cest-` a-dire les propositions
(du calcul propositionnel), qui seront interpretees dans B = {0, 1}.
On consid`ere aussi un ensemble X de variables et on denit les termes et les formules de la
logique du premier ordre associes `a G R X.
Denition 10.1 (Termes avec variables). Lensemble T(G, X) des termes est deni inducti-
vement par :
(B) toute constante de C est un terme et toute variable de X est un terme,
(I) si f G a n arguments et si t
1
, . . . , t
n
sont des termes, alors f(t
1
, . . . , t
n
) est un
terme.
Denition 10.2 (Formules). Les formules de la logique du premier ordre sur G et R sont
denies inductivement par :
(B) si R R a n arguments et si t
1
, . . . , t
n
sont des termes, alors R(t
1
, . . . , t
n
) est une
formule dite atomique,
(I) si F et G sont des formules alors F, (F G), (F G), (F G) sont des formules,
Si x une variable alors xF et xF sont des formules.
Par exemple, dans la formule xy(R(f(x, y), a) (R(x, a) R(y, a))), on trouve les termes
a (constante), x, y (variables) et f(x, y), pour une fonction f `a deux arguments, ainsi quune
relation binaire R. On pourra par la suite interpreter cette formule dans N, avec laddition
pour f, legalite pour R, et la valeur 0 pour a.
Remarque 1. Les formules du calcul propositionnel sont des cas particuliers de cet ensemble.
Remarque 2. Les formules sont representees par des arbres.
Par exemple, la formule F : zR(x, z) y(R(y, z) Q(y, z)) est representee par larbre :
34

z
y
R
x z
R
Q
y
z
y
z
10.2 Variables libres et liees
Denition 10.3 (Variables dun terme ou dune formule).
1. Les variables dun terme sont denies inductivement par :
V ar(x) = {x} si x X et V ar(c) = si c C,
V ar(f(t
1
, . . . , t
n
)) =

n
i=1
V ar(t
i
) pour un terme f(t
1
, . . . , t
n
).
2. Les variables dune formule sont denies inductivement par :
V ar(R(t
1
, . . . , t
n
)) =

n
i=1
V ar(t
i
) pour une formule atomique,
si F et G sont des formules, x est une variable et {, , }, alors : V ar(F) =
V ar(F), V ar(F G) = V ar(F) V ar(G), V ar(xF) = V ar(xF) = V ar(F) {x}.
Remarque. Les variables et les constantes nayant pas dargument, elles nont pas de des-
cendant et sont toujours en position de feuilles dans larbre associe ` a une formule.
Denition 10.4 (Variables libres et liees).
Dans larbre dune formule F, une feuille detiquette x X est une occurrence libre de
x sil ny a aucun quanticateur x ou x dans les ascendants de cette feuille.
Sinon, loccurrence est dite liee.
Une variable est libre dans une formule F si elle a au moins une occurrence libre dans
cette formule. Elle est liee dans une formule si elle nest pas libre dans cette formule.
On note L(F) lensemble des variables libres dans F et B(F) = V ar(F) \L(F) lensemble
des variables liees dans F (B pour bound en anglais).
Par exemple, dans la formule F ci-dessus, en considerant les feuilles de gauche ` a droite,
loccurrence de x est libre, loccurrence de z est liee, puis les deux occurrences de y sont liees
tandis que les deux occurrences de z sont libres.
Par consequent, L(F) = {x, z} et B(F) = {y}
Denition 10.5 (Formule close). Une formule est dite close si elle na aucune variable libre.
Proposition 10.6. Les variables libres dune formule sont denies inductivement par :
(B) L(R(t
1
, . . . , t
n
)) =

n
i=1
V ar(t
i
)
(I) Pour F et G deux formules,
35
L(F) = L(F) et L(F G) = L(F) L(G) pour {, , }
L(xF) = L(xF) = L(F) \ {x}
10.3 Semantique
Pour interpreter les formules, on va considerer une structure M, donnee par :
un domaine D,
pour toute fonction f de G `a n arguments, une fonction f
D
: D
n
D
Pour toute relation R de R `a n arguments, une relation R
D
D
n
En particulier, une constante a correspond ` a un element a
D
de D et une proposition p (relation
sans argument) correspond ` a un element de B = {0, 1}.
On note M = (D, (f
D
)
fG
, (R
D
)
RR
) une telle structure.
Exemple 1. Dans la structure M = (R, 0, 1, +, , =), le domaine est D = R, lensemble des
nombres reels, les fonctions sont : les constantes 0 et 1, laddition, la multiplication et il y a
un seul predicat qui est legalite.
Le terme ((xx) x) a peut etre interprete sur ce domaine, avec a
R
= 1,
R
est laddition,

R
est la multiplication. Il represente donc le polyn ome P deni par P(x) = x
2
+x + 1.
Considerons maintenant la formule atomique F : Q(((x x) x) a, b). En interpretant
le predicat binaire Q comme legalite et avec b
R
= 0, cette formule sinterprete comme un
predicat unaire avec x comme variable libre : P(x) = 0.
La formule xF correspond alors ` a lenonce : le polyn ome P a une racine dans R.
Exemple 2. Lorsque M decrit une base de donnees, les requetes sont des formules.
Denition 10.7. Pour une structure M avec domaine D, une valuation est une application
v: X D.
Proposition 10.8. Etant donnees une structure M associee ` a G R, avec domaine D, et
une valuation v: X D, la valeur dun terme v

(t) D est denie inductivement par :


(B) v

(a) = a
D
pour une constante a et v

(x) = v(x) pour une variable x X,


(I) Si t = f(t
1
, . . . , t
n
) pour une fonction f ` a n arguments et des termes t
1
, . . . , t
n
, alors
v

(t) = f
D
(v

(t
1
), . . . , v

(t
n
)).
Remarque. A chaque v: X D, on associe v

: T(G, X) D
t v

(t)
Denition 10.9. Soient M une structure de domaine D, v: X D une valuation, x X
une variable et a
D
D.
La valuation v

= v[x a
D
] est denie par :
_
v

(y) = v(y) si y = x
v

(x) = a
D
Exemple. On consid`ere X = {x, y, z, w} et D = N.
Determiner v
1
= v[z 3] et v
2
= v
1
[x 1] pour la valuation v denie par :
v:
_

_
x 2
y 8
z 7
w 14
36
Denition 10.10. On denit la valuation (ou valeur de verite, ou interpretation) dune
formule F, notee v(F), inductivement par :
(B) Si F = R(t
1
, . . . , t
n
), alors v(F) = 1 ssi (v

(t
1
), . . . , v

(t
n
)) R
D
(B) Pour deux formules F et G, et une variable x,
v(F) = v(F)
v(F G) = v(F) v(G)
v(F G) = v(F) + v(G)
v(F G) = v(F) + v(G)
v(xF) = 1 ssi pour toute a
D
D,

v[x a
D
](F) = 1
v(xF) = 1 ssi il existe a
D
D tel que

v[x a
D
](F) = 1
Exemple 1. Soit F : Q(((x x) x) a, b), la formule consideree precedemment, avec le
meme mod`ele, et la valuation v telle que v(x) = 2. Alors v(F) = 0. De plus, comme aucune
valeur de x ne peut etre racine, on a aussi v(xF) = 0.
Exemple 2. Soit F = R(f(x), g(y)) et la structure M = (N, f
N
, g
N
, ), avec f
N
(n) = n + 1
et g
N
(n) = n + 3, et soit v
0
la valuation denie par : v
0
_
x 4
y 3
v

0
(f(x)) = f
N
(v
0
(x)) = f
N
(4) = 5
v

0
(g(y)) = g
N
(v
0
(y)) = 6
Ainsi, v
0
(F) = 1 car 5 6 et, plus generalement, si v est une valuation quelconque, v(F) = 1
ssi v(x) + 1 v(y) + 3.
Denition 10.11.
1. Etant donnees une formule F et une structure M,
(a) F est satisfaisable pour M, sil existe une valuation v telle que v(F) = 1.
(b) F est valide pour M, si pour toute valuation v, v(F) = 1.
On dit alors que M est un mod`ele de F (note M |= F).
2. Etant donnee une formule F :
(a) F est satisfaisable sil existe une structure M telle que F est satisfaisable pour M.
(b) F est valide (ou universellement valide), si pour toute structure M, F est valide
pour M.
Remarque. Le probl`eme 2.a est indecidable.
Le probl`eme 1.a est decidable pour des structures nies. Cest le cas par exemple pour la
satisfaisabilite dune requete dans une base de donnees.
Proposition 10.12. Il existe un algorithme qui prend en entree une structure nie M et
une formule du premier ordre F, et qui decide sil existe une valuation v telle que v(F) = 1.
Pour les structures innies, cest plus complique :
Pour M
1
= ( N
..
D
, 0, 1, +, , exp
. .
G
, =
..
R
), la satisfaisabilite (dune formule du premier
ordre) est indecidable.
Dommage... : nxyz(x
n
+y
n
= z
n
) (n 3)
37
Pour M
2
= (N, 0, 1, +, , =), le probl`eme est egalement indecidable.
Dommage... : xP(x) = 0 o` u P est un polyn ome.
Mais pour M
3
= (R, +, , <), le probl`eme est decidable !
Exemples de mod`eles. Tout ensemble E muni dune relation binaire R
E
reexive est un
mod`ele de la formule F
1
: x R(x, x).
Tout ensemble ordonne M = (E, ) est un mod`ele de la formule F
1
F
2
F
3
avec F
1
comme
ci-dessus et :
F
2
: x y ((R(x, y) R(y, x)) x = y)
F
3
: x y z ((R(x, y) R(y, z)) R(x, z))
10.4 Proprietes semantiques
Denition 10.13. Soit M une structure, F et G deux formules.
F |= G si, pour toute valuation v de M, si v(F) = 1, alors v(G) = 1.
F et G sont equivalentes, note F G si pour toute structure M et pour toute valuation
v, v(F) = v(G)
Remarques.
On note parfois |=
M
au lieu de |= lorsquil y a ambigute sur la structure consideree.
Comme pour le calcul propositionnel, F G ssi pour toute structure M, on a : F |= G
et G |= F.
On a toutes les equivalences du calcul propositionnel :
(F G) F G, F F, . . .
On voudrait des equivalences plus riches , qui impliquent les variables.
Proposition 10.14. Soit F une formule. On a lequivalence suivante :
xF xF
Demonstration. Soit M une structure et v une valuation. On a :
v(xF) = 1 ssi v(xF) = 0
ssi il existe a D tq

v[x a](F) = 0
ssi il existe a D tq

v[x a](F) = 1
ssi v(xF) = 1
Lemme 10.15. Soit M une structure, v
1
et v
2
deux valuations.
1. Si t est un terme tel que v
1
|
Var(t)
= v
2
|
Var(t)
(v
1
et v
2
concident sur Var(t)),
alors v

1
(t) = v

2
(t)
2. Si F est une formule telle que v
1
|
L(F)
= v
2
|
L(F)
(v
1
et v
2
concident sur les variables
libres de F),
alors v
1
(F) = v
2
(F)
38
Exemple pour un terme. Soit t = g(x, y) et deux valuations v
1
et v
2
telles que v
1
(x) =
v
2
(x) et v
1
(y) = v
2
(y).
Alors v

1
(t) = g
D
(v
1
(x), v
1
(y)) = g
D
(v
2
(x), v
2
(y)) = v

2
(t).
Remarque. Ce lemme exprime que la valeur de verite dune formule ne depend que des
valeurs de ses variables libres. Par exemple, la valeur de la formule F : xR(y, x) ne depend
que de y.
Corollaire 10.16 (Consequences). Si F est une formule close (cest-`a-dire une formule sans
variable libre), alors v(F) est constante, independante de v.
Ainsi, F et xF sont equivalentes si x nest pas libre dans F.
De meme, F xF si x / L(F).
Exemple. Soit F : xyR(x, y) interpretee avec pour D lensemble des personnes et R la
relation denie par R(x, y) si y est la m`ere de x . Alors, pour toute valuation v, v(F) = 1.
Rappel : Dapr`es la denition inductive de L(F), on a :
L(xF) = L(F)\{x} = L(F) si x nest pas libre dans F.
Demontrons la propriete : si x / L(F) alors F xF.
On se rappelle tout dabord que, dapr`es la denition inductive de L(F), on a : L(xF) =
L(F)\{x} = L(F) si x nest pas libre dans F.
Soit maintenant v une valuation. On a par denition de v(xF) :
v(xF) = 1 si pour tout a D,

v[x a](F) = 1.
Mais v et v[x a] concident partout sauf sur x, donc elles concident sur L(F) = L(xF)
dapr`es ce qui prec`ede.
Donc dapr`es le lemme : v(F) =

v[x a](F) = 1, et on obtient bien v(F) = v(xF).
39

You might also like