Académique Documents
Professionnel Documents
Culture Documents
On présente ici le lemme de l’étoile, qui est l’outil le plus couramment utilisé pour
démontrer qu’un langage n’est pas régulier.
Notations
On rappelle que le symbole λ dénote le mot vide.
L(M ) = { w ∈ Σ∗ | δ(q0 , w) ∈ F }.
Le lemme de l’étoile
Théorème 3 On peut associer à chaque langage régulier L ⊂ Σ∗ une constante entière
k telle que pour tout mot z ∈ L de longueur supérieure ou égale à k, il existe une
décomposition z = uvw qui a les propriétés suivantes :
• |uv| ≤ k,
• |v| ≥ 1 et
• pour tout entier i ≥ 0, le mot zi = uv i w appartient lui aussi à L.
IFT 313 Introduction aux langages formels 2
Démonstration.
Puisque L est régulier, il existe un AFD M = (Q, Σ, δ, q0 , F ) qui le reconnaı̂t : dénotons
par k le nombre de ses états. Un mot z ∈ Σ∗ définit dans M un seul et unique chemin
dans le graphe de M à partir de l’état initial de celui-ci ; on aura z ∈ L si et seulement si
ce chemin se termine dans un état accepteur. Posons |z| ≥ k et regardons le chemin défini
par z. Étant donné que dans un graphe à k sommets, tout chemin acyclique contient au
plus k − 1 arêtes, le chemin défini par les k premières lettres de z contient au moins un
circuit de longueur au moins 1. Dénotons par u les lettres de z qui sont lues avant l’entrée
dans ce circuit, par v celles qui sont lues le long du circuit, et par w les autres lettres de
z, de telle sorte qu’on a z = uvw, |uv| ≤ k, |v| ≥ 1 et δ(q0 , u) = δ(q0 , uv). Alors avec
on a z0 = uw ∈ L, et avec
on obtient δ(q0 , z2 ) = δ(q0 , uvvw) = δ(q0 , uvw) = δ(q0 , z), donc z2 ∈ L, et on complète la
preuve en montrant zi ∈ L par récurrence sur i.
1. On suppose que L est régulier : ceci implique que L respecte le lemme de l’étoile,
avec une constante qu’on dénote par k.
Deux remarques
(1) Le choix du mot z à la deuxième étape du raisonnement détermine si le reste du travail
sera simple ou complexe. Dans la mesure du possible, on choisira un mot z dont les k
premières lettres sont identiques : par exemple, pour montrer que L = {an bn | n ≥ 0}
n’est pas régulier, on choisira z = ah bh pour un h ≥ k. Ceci impliquera que les morceaux
u et v consisteront uniquement de a, donc u = ap , v = aq et w = ar bh pour des entiers p,
q et r qui satisfont p + q ≤ k, q ≥ 1 et p + q + r = h. On aura alors zi = a(p+iq+r) bh , un
mot qui est en-dehors de L pour tout i 6= 1.
(2) Il importe de bien comprendre, lorsqu’on utilise le lemme de l’étoile, qu’il dit très peu
de choses sur u et v, et qu’en même temps tout ce qu’on sait sur u et v nous vient de ce
lemme. Ainsi, dans l’exemple ci-dessus, le lemme dit que u = ap , v = aq avec p + q ≤ k
et q ≥ 1, et c’est la totalité de ce qu’on sait sur u et v.