Le théorème suivant est généralement appelé lemme ou théorème de pompage pour les langages réguliers. Théorème: Soit L un langage. Si L est régulier, alors il existe un entier p ≥ 1 (appelé longueur de pompage) tel que pour tout mot w ∈ L avec |w| ≥ p il existe des mots x, y, z tels que w = xyz et 1. |xy| ≤ p; 2. |y| > 0; 3. pour tout entier i ≥ 0 on a xy i z ∈ L. Démonstration: La démonstration s’articule autour de l’idée suivante: si un automate fini M reconnaˆun mot dont la longueur est supérieure ou égale au nombre d’états de l’automate, alors M traverse un même état deux fois pendant la lecture de ce mot. Puisque L est régulier, il existe un automate fini M = (S, Σ, δ, ι, F ) qui reconnaˆL. On pose p = |S|. Supposons que w = a1 . . . an est un mot de L avec |w| ≥ p. Puisque M ne contient que p états, M passe au moins deux fois par un même état s lors de la lecture des p premiers symboles a1 , . . . , ap de w. Supposons que cet état est atteint une première fois après la lecture de k symboles. On pose x = a1 . . . ak (et x = λ si k = 0, i.e. si l’état s est l’état initial). L’état s est atteint une deuxième fois après la lecture des l symboles suivants ak+1 , . . . , ak+l et on pose y = ak+1 . . . ak+l . On a |xy| ≤ p puisqu’on a montré que l’état s est visité deux fois pendant la lecture des p premiers symboles de w. On a aussi |y| > 0 puisque |y| = l > 0. Finalement, on choisit z = ak+l+1 . . . an et donc on a w = xyz, tel que requis. À partir de l’état s, la lecture de y forme une boucle qui nous ramène à l’état s. Puis la lecture de z mène l’automate de s à un état acceptant puisque w ∈ L. Considérons maintenant le comportement de M à la lecture du mot xy i z où i ≥ 0 est un entier. La lecture de x mène à s puis la lecture de i copies de y (pompage de la boucle) nous ramène de nouveau à s et la lecture de z nous mène à un état acceptant. Ce mot est donc accepté par M et donc xy i z ∈ L. Comment utiliser le théorème du pompage? Il sert pricipalement à démontrer qu’un langage n’est pas régulier. La structure de tous ces arguments est la même: on suppose qu’un langage est régulier et qu’il satisfait donc le 1 théorème. Puis on montre que pour toute longueur de pompage p on peut trouver un mot w qui ne peut pas être “pompé”. De cette contradiction on peut conclure que L n’est pas régulier. n Par exemple, supposons qu’on veut montrer que le langage L = {a2 : n ∈ N} n’est pas régulier. Étape 1: Supposons que L est régulier. Donc il satisfait le théorème de pompage pour une certaine longueur de pompage p. p Étape 2: Soit w = a2 . Ce mot est dans le langage L et sa longueur est supérieure à p. Donc w peut être pompé, c’est à dire qu’il peut être décomposé sous la forme w = xyz satisfaisant les conditions du théorème. Étape 3: On a |xy| ≤ p et donc en particulier |y| ≤ p. D’après le théorème p on a xy 2 z ∈ L. Mais xy 2 z = a2 +|y| . Comme on a 2p < 2p + |y| ≤ 2p + p < 2p+1 , le mot xy 2 z a une longueur qui se trouve strictement entre deux puissances successives de 2 donc il ne peut faire partie de L. Contradiction! =⇒ L n’est pas régulier. 2