Professional Documents
Culture Documents
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 :
(
, 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
}.
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
.
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
(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
(t
1
) = 2 + 3 = 5. Ceci sexprime formellement par : h
((a, b)) =
D
(h
(a), 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
(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
, 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
,
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
= 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
de S, avec
P
= {s
\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
, 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
(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
) 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
}.
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
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
(a) = a
D
pour une constante a et 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