Le théor`eme suivant est généralement appelé lemme ou théor`eme

publicité
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
Téléchargement