Lemme de l'étoile
En théorie des langages, le lemme de l'étoile (ou encore lemme d'itération, lemme de pompage, lemme de la pompe, pumping lemma en anglais) énonce une propriété typique de tout langage rationnel. Informellement, il stipule que tout mot suffisamment long d'un langage rationnel peut être pompé, au sens qu'une partie centrale du mot peut être répétée un nombre quelconque de fois, et que chacun des mots produits est encore dans le langage.
Le lemme de l'étoile a été formulé pour la première fois en 1961 par Y. Bar-Hillel, Micha A. Perles, Eli Shamir[1]. Le même article contient un lemme d'itération pour les langages algébriques.
Le lemme de l'étoile est couramment utilisé pour montrer qu'un langage donné n'est pas rationnel (en raisonnant par l'absurde). En revanche, il ne peut être employé pour démontrer qu'un langage est rationnel. En effet, il énonce une condition, nécessaire certes, mais non suffisante, de rationalité.
Sommaire |
[modifier] Énoncé formel
Lemme de l'étoile — Soit
un langage rationnel. Il existe un entier
tel que tout mot
de
de longueur
possède une factorisation
telle que
et
pour tout entier
.
Ici,
dénote la longueur du mot
. L'entier
ne dépend que de
et non pas du mot
choisi. Il est parfois appelé «constante d'itération». Le facteur central
de la factorisation
est appelé un « facteur itérant ». Le nom « lemme de l'étoile » provient de la formulation équivalente suivante de la conclusion du lemme:
.
Parmi les itérés
qui sont dans le langage figure aussi le mot
obtenu pour
.
Il existe de nombreuses variantes de ce lemme; la plus fréquente stipule, au lieu de la condition
, la condition
, et donc que le facteur itérant
se situe près du début du mot.
[modifier] Un exemple d'application du lemme de l'étoile
Le lemme de l'étoile est souvent utilisé pour démontrer qu'un langage donné n'est pas rationnel. La preuve se fait en général par l'absurde, en supposant que le langage est rationnel et en exhibant un mot du langage qui ne vérifie pas la conclusion du lemme.
Prenons par exemple le langage
sur l'alphabet
. Supposons par l'absurde que
est rationnel. Soit
la constante d'itération de
. On choisit le mot
. Par le lemme, il existe un mot
vérifiant les conditions du lemme de l'étoile. En particulier, et en utilisant la variante énoncée, on a
, et donc
et
sont composés uniquement de lettres
. Posons
. On a
. Alors
pour tout entier
. Comme ces mots devraient être dans
on devrait avoir
pour tout entier
et donc
, ce qui est en contradiction avec l'hypothèse. Donc
n'est pas rationnel.
On montre de même que
- le langage des palindromes sur
n'est pas rationnel, - le langage
sur
(où
désigne le nombre d'occurrences de la lettre
dans le mot
) est composé des mots qui ont autant de
que de
. Il n'est pas rationnel.
Un peu plus compliqué est la preuve que le langage
n'est pas rationnel. De même, le langage
n'est pas rationnel. Au lieu de faire une preuve directe, il vaut mieux passer par le langage complément.
[modifier] Preuve du lemme de l'étoile
L'argument principal de la preuve est le principe des tiroirs. Il s’emploie, dans le cas présent, sous la forme du constat qu'un chemin assez long dans un graphe fini passe deux fois par le même sommet.
Soit
un langage rationnel, sur un alphabet
. Par le théorème de Kleene, il existe un automate fini
qui reconnaît
. Soit
le nombre d'états de cet automate.
Soit
un mot de
de longueur
. Comme
est dans
, il est reconnu par
, et il existe un chemin réussi
de l'état initial noté ici
vers un état terminal
d'étiquette
. Soient
les
premières lettres de
, posons
, et soient
les états successifs atteints après la lecture de ces lettres. On a alors le chemin suivant
Le principe des tiroirs dit que, parmi les
états
, deux sont égaux. Il existe donc deux entiers
avec
tels que
. Posons
et
Le chemin d'étiquette
se factorise de la façon suivante:
Il en résulte que
pour tout entier
, et donc que
est dans
pour tout entier
. Enfin, on a
, donc
. Ceci prouve le lemme.
La preuve montre en fait la variante du lemme énoncée ci-dessus, à savoir que de plus on a
, puisque
.
[modifier] Le lemme est une condition nécessaire mais non suffisante de rationalité
Le lemme ne donne qu'une condition nécessaire pour qu'un langage soit rationnel. Voici un exemple d'un langage non rationnel qui vérifie le lemme de l'étoile dans la version donnée ci-dessus.
Notons
l'image miroir d'un mot
, et soit
l'ensemble des mots qui ont un préfixe qui est un palindrome non vide de longueur paire.
Posons
, et soit
un mot de longueur au moins 4 du langage. Si
est une lettre, la factorisation
avec
,
la première lettre de
et
le reste du mot convient. Si
est de longueur au moins 2, on choisit pour
le mot vide, pour
la première lettre de
, et pour
le
reste du mot. Pour
, le mot
commence par le palindrome non vide
; pour
, le mot
commence par le palindrome formé de
privé de sa première lettre, suivi de l'image miroir de ce suffixe (lui-même suivi de la première lettre de
).
[modifier] Extensions
Il existe de nombreuses variantes du lemme de l'étoile, plus ou moins sophistiquées, pour prendre en compte des langages plus compliqués.
[modifier] Choix du facteur itérant
La première variante énonce que la place du facteur itérant peut être choisie dans n'importe quelle plage du mot de longueur assez grande. Voici l'énoncé:
Lemme de l'étoile (variante) — Soit
un langage rationnel. Il existe un entier
tel que pour tout mot
de
, et pour toute factorisation
, avec
de longueur
, il existe une factorisation
telle que
et
.
[modifier] Lemme de l'étoile par bloc
Dans cette variante, on découpe le mot en blocs, et c'est un groupe de blocs que l'on peut itérer:
Lemme de l'étoile par blocs — Soit
un langage rationnel. Il existe un entier
tel que pour tout mot
de
, et pour toute factorisation
, où tous les
sont non vides, il existe deux entiers
avec
et
.
Dans cet énoncé et les suivants, on convient que
est égal au mot vide si
, et de même
est égal au mot vide si
.
[modifier] Lemme de l'étoile à la Ogden
Le lemme d'Ogden[2], initialement conçu pour les langages algébriques, s'applique aussi bien aux langages rationnels. Étant donné un mot
, où les
sont des lettres, on appelle position dans
tout entier de l'ensemble
. Un choix de
positions distinguées dans
(ceci est la terminologie habituelle, un peu alambiquée) est simplement un sous-ensemble
de positions contenant
éléments. Avec ces définitions, le lemme s'énonce comme suit:
Lemme de l'étoile à la Ogden — Soit
un langage rationnel. Il existe un entier
tel que pour tout mot
de
de longueur
, et pour tout choix de
positions distinguées dans
, il existe une factorisation
telle que
contient au moins une et au plus
positions distinguées
.
Si l'on distingue toutes les positions dans
, on retrouve le lemme de l'étoile initial. Si l'on considère la factorisation de
obtenue en segmentant le mot après chaque position distinguée, on obtient essentiellement le lemme de l'étoile par blocs. Les preuves de ces énoncés sont très similaires.
[modifier] Une condition nécessaire et suffisante
Un théorème prouvé par Ehrenfeucht (en), Parikh (en) et Rozenberg (en)[3] donne une condition qui est nécessaire et suffisante pour qu'un langage soit rationnel. On dit qu'un langage
sur l'alphabet
vérifie la condition
pour un entier
si pour tout mot
, et pour toute factorisation
, où les mots
sont non vides, il existe deux indices
avec
tels que
- pour tout
,on a
.
L'équivalence équivaut à la conjonction des deux implications:
et
On dit que
vérifie la condition
si pour tout mot
, et pour toute factorisation
, où les mots
sont non vides, il existe deux indices
avec
tels que
.
Théorème d'Ehrenfeucht, Parikh et Rozenberg — Soit
un langage. Les conditions suivantes sont équivalentes:
est rationnel;- Il existe un entier
tel que
vérifie la condition 
- Il existe un entier
tel que
vérifie la condition
.
L'implication difficile est
. Elle utilise, à la place du principe des tiroirs, le théorème de Ramsey.
[modifier] Notes
[modifier] Références
- Yehoshua Bar-Hillel, Micha A. Perles et Eli Shamir, « On formal properties of simple phrase structure grammars », dans Zeitschrift für Phonetik, Sprachwissenschaft und Kommunikationsforschung, vol. 14, 1961, p. 143-172
- William F. Ogden, « A Helpful Result for Proving Inherent Ambiguity », dans Mathematical Systems Theory, vol. 2, no 3, 1968, p. 191-194 [lien DOI]
- Andrzej Ehrenfeucht, Rohit Jivanlal Parikh et Grzegorz Rozenberg, « Pumping lemmas for regular sets », dans SIAM J. Comput., vol. 10, 1981, p. 536–541
- Olivier Carton, Langages formels, calculabilité et complexité, Vuibert, 2008 (ISBN 978-2-7117-2077-4)
[modifier] Voir aussi
- Expression rationnelle
- Théorème de Kleene
- Lemme d'itération
- Lemme d'itération pour les langages algébriques
- Lemme d'Ogden
pour tout entier
.
sur
désigne le nombre d'occurrences de la lettre
. Il n'est pas rationnel.


.
.
,on a
.
et
.