- 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
Énoncé formel
Lemme de l'étoile — Soit L un langage rationnel. Il existe un entier N tel que tout mot w de L de longueur possède une factorisation w = xyz telle que
- et
- pour tout entier .
Ici, dénote la longueur du mot w. L'entier N ne dépend que de L et non pas du mot w choisi. Il est parfois appelé «constante d'itération». Le facteur central y de la factorisation w = xyz est appelé un « facteur itérant ». Le nom « lemme de l'étoile » provient de la formulation équivalent suivante de la conclusion du lemme:
- .
Parmi les itérés xynz qui sont dans le langage figure aussi le mot xz obtenu pour n = 0.
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 y se situe près du début du mot.
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 A = {a,b}. Supposons par l'absurde que L est rationnel. Soit N la constante d'itération de L. On choisit le mot w = aNbN. Par le lemme, il existe un mot w = xyz vérifiant les conditions du lemme de l'étoile. En particulier, et en utilisant la variante énoncée, on a , et donc x et y sont composés uniquement de lettres a. Posons . On a k > 0. Alors xynz = aN + (n − 1)kbN pour tout entier . Comme ces mots devraient être dans L on devrait avoir N + (n − 1)k = N pour tout entier et donc , ce qui est en contradiction avec l'hypothèse. Donc L n'est pas rationnel.
On montre de même que
- le langage des palindromes sur A = {a,b} n'est pas rationnel,
- le langage sur A = {a,b} (où désigne le nombre d'occurrences de la lettre a dans le mot w) est composé des mots qui ont autant de a que de b. 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.
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 L un langage rationnel, sur un alphabet A. Par le théorème de Kleene, il existe un automate fini qui reconnaît L. Soit N le nombre d'états de cet automate.
Soit w un mot de L de longueur . Comme w est dans L, il est reconnu par , et il existe un chemin réussi de l'état initial noté ici q0 vers un état terminal t d'étiquette w. Soient les N premières lettres de w, 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 N + 1 états , deux sont égaux. Il existe donc deux entiers avec tels que . Posons et
Le chemin d'étiquette w se factorise de la façon suivante:
Il en résulte que pour tout entier , et donc que xynz est dans L 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 .
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 uR l'image miroir d'un mot u, et soit l'ensemble des mots qui ont un préfixe qui est un palindrome non vide de longueur paire.
Posons N = 4, et soit w = uuRv un mot de longueur au moins 4 du langage. Si u est une lettre, la factorisation w = xyz avec x = uuR, y la première lettre de v et z le reste du mot convient. Si u est de longueur au moins 2, on choisit pour x le mot vide, pour y la première lettre de u, et pour z le u reste du mot. Pour , le mot xyNz commence par le palindrome non vide yy; pour N = 0, le mot xyNz = z commence par le palindrome formé de u privé de sa première lettre, suivi de l'image miroir de ce suffixe (lui-même suivi de la première lettre de u).
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.
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 L un langage rationnel. Il existe un entier N tel que pour tout mot w de L, et pour toute factorisation w = uw'v, avec w' de longueur , il existe une factorisation w' = xyz telle que
- et
- .
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 L un langage rationnel. Il existe un entier N tel que pour tout mot w de L, et pour toute factorisation , où tous les wi sont non vides, il existe deux entiers avec
- et
- .
Dans cet énoncé et les suivants, on convient que est égal au mot vide si k = 0, et de même est égal au mot vide si .
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 ai sont des lettres, on appelle position dans w tout entier de l'ensemble . Un choix de N positions distinguées dans w (ceci est la terminologie habituelle, un peu alambiquée) est simplement un sous-ensemble de positions contenant N éléments. Avec ces définitions, le lemme s'énonce comme suit:
Lemme de l'étoile à la Ogden — Soit L un langage rationnel. Il existe un entier N tel que pour tout mot w de L de longueur , et pour tout choix de N positions distinguées dans w, il existe une factorisation w = xyz telle que
- y contient au moins une et au plus N positions distinguées
- .
Si l'on distingue toutes les positions dans w, on retrouve le lemme de l'étoile initial. Si l'on considère la factorisation de w 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.
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 L sur l'alphabet A vérifie la condition (EN) pour un entier N si pour tout mot w, et pour toute factorisation , où les mots wi 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 L vérifie la condition (E'N) si pour tout mot w, et pour toute factorisation , où les mots wi sont non vides, il existe deux indices avec tels que
- .
Théorème d'Ehrenfeucht, Parikh et Rozenberg — Soit L un langage. Les conditions suivantes sont équivalentes:
- L est rationnel;
- Il existe un entier N tel que L vérifie la condition (EN)
- Il existe un entier N tel que L vérifie la condition (E'N).
L'implication difficile est . Elle utilise, à la place du principe des tiroirs, le théorème de Ramsey.
Notes
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)
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
Catégories :- Langage formel
- Théorème d'informatique
Wikimedia Foundation. 2010.