Vous êtes sur la page 1sur 3

IFT 313 Introduction aux langages formels 1

Le lemme de l’étoile des langages réguliers

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.

Définition 1 Un automate fini déterministe est un quintuplet (Q, Σ, δ, q0 , F ) où


Q est l’ensemble des états ;
Σ est l’alphabet dans lequel est écrite la donnée reçue en entrée ;
δ ⊂ (Q × Σ) × Q est une fonction totale ( fonction de transition) ;
q0 ∈ Q est l’état initial ;
F ⊂ Q est l’ensemble des états accepteurs.

Définition 2 Soit M = (Q, Σ, δ, q0 , F ) un automate fini déterministe.


i. On étend la fonction δ à la totalité de Σ∗ de manière récursive, en faisant δ(q, λ) =
q et δ(q, wa) = δ(δ(q, w), a) pour tout w ∈ Σ∗ et a ∈ Σ.
ii. Le langage reconnu par M , souvent dénoté L(M ), est l’ensemble des données sur
lesquelles M retourne une réponse positive ; formellement,

L(M ) = { w ∈ Σ∗ | δ(q0 , w) ∈ F }.

iii. Un langage reconnu par un AFD est dit reconnaissable, ou régulier.

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

δ(q0 , z) = δ(q0 , uvw) = δ(δ(q0 , uv), w) = δ(δ(q0 , u), w) = δ(q0 , uw)

on a z0 = uw ∈ L, et avec

δ(q0 , uv) = δ(δ(q0 , u), v) = δ(δ(q0 , uv), v) = δ(q0 , uvv)

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. 

Utilisation du lemme de l’étoile


Le lemme de l’étoile est un outil qui sert à démontrer que des langages ne sont pas
réguliers, en faisant une preuve par l’absurde dont le déroulement logique est toujours le
même, indépendant du langage dont il est question. Le raisonnement est divisé en cinq
étapes.

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.

2. On choisit un mot z ∈ L suffisamment long.

3. On applique le lemme de l’étoile à z, et on conclut que chacun des mots zi , i ≥ 0,


appartient lui aussi à L.

4. On regarde un zi en particulier et on démontre que zi 6∈ L.

5. On a obtenu deux énoncés contradictoires concernant le mot zi . Le second (zi 6∈ L)


est appuyé par une démonstration, alors que le premier (zi ∈ L) est une conséquence
de l’hypothèse initiale. Celle-ci est donc fausse : L n’est pas régulier.
IFT 313 Introduction aux langages formels 3

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.

Vous aimerez peut-être aussi