J'ai repensé à ce problème et je pense en avoir une preuve complète. C'est un peu plus délicat que ce à quoi je m'attendais. Les commentaires sont les bienvenus! Mise à jour: j'ai soumis cette preuve sur arXiv, au cas où cela serait utile à quelqu'un: http://arxiv.org/abs/1207.2819
Soit une langue sans contexte sur un alphabet . Soit un automate déroulant qui reconnaît , avec l'alphabet de pile . Nous désignons parle nombre d'états de . Sans perte de généralité, nous pouvons supposer que les transitions de apparaissent comme le symbole le plus haut de la pile et ne poussent aucun symbole sur la pile ou ne poussent sur la pile le symbole le plus haut précédent et un autre symbole.L LΣ ΣA AL LΓ Γ| A | |A|A AAA
On définitet la longueur de pompage, et montrera que tout tel que ont une décomposition de la forme telle que , et .p ′ = | A | 2 | Γ | p = | A | ( | Γ | + 1 ) p ′ w ∈ L | w | > p w = u v x y z | v x y | ≤ p | v y | ≥ 1 ∀ n ≥ 0 , u v n xp′=|A|2|Γ|p=|A|(|Γ|+1)p′w∈L|w|>pw=uvxyz|vxy|≤p|vy|≥1y n z ∈ L∀n≥0,uvnxynz∈L
Soit tel que . Soit un chemin accepteur de longueur minimale pour (représenté comme une séquence de transitions de ), nous notons sa longueur par. On peut définir, pour, la taille de la pile à la position du chemin d'acceptation. Pour tout , nous définissons un
niveau sur comme un ensemble de trois indices avec tels que:w ∈ L | w | > p π w A | π | 0 ≤ i < | π | s i i N > 0 N π i , j , k 0 ≤ i < j < k ≤ pw∈L|w|>pπwA|π|0≤i<|π|siiN>0Nπi,j,k0≤i<j<k≤p
- s i = s k , s j = s i + Nsi=sk,sj=si+N
- pour tout tel que ,n i ≤ n ≤ j s i ≤ s n ≤ s jni≤n≤jsi≤sn≤sj
- pour tout tel que , .n j ≤ n ≤ k s k ≤ s n ≤ s knj≤n≤ksk≤sn≤sk
(Pour un exemple de cela, voir l'image du cas 2 ci-dessous qui illustre un niveau.)NN
Nous définissons le niveau de comme le maximal tel que a un
niveau. Cette définition est motivée par la propriété suivante: si la taille de la pile sur un chemin devient supérieure à son niveau , alors les symboles de pile supérieurs à niveaux ne seront jamais sautés. Nous allons maintenant distinguer deux cas: soit , auquel cas nous savons que la même configuration pour l'état de l'automate et les symboles les plus de la pile est rencontrée deux fois dans les étapes de , oul π N π N π l l l < p ′ l p + 1 π l ≥ p ′ v ylπNπNπlll<p′lp+1πl≥p′, et il doit y avoir une position d'empilement et de dépilage qui peut être répétée un nombre arbitraire de fois, à partir de laquelle nous construisons et .vy
Cas 1. . Nous définissons les configurations de comme les couples d'un état de et d'une séquence de symboles de pile (où les piles de taille inférieure à avec être représentées en les remplissant à avec un symbole vide spécial, c'est pourquoi nous utilisons lors de la définition de ). Par définition, il existe
telles configurations, ce qui est inférieur à . Ainsi, dans les premières étapes de , la même configuration est rencontrée deux fois à deux positions différentes, disons . Désigner parl < p ′ A A l l l | Γ | + 1 p | A | ( | R | + 1 ) l p p + 1 π i < j i j w i j π i ≤ j w = u v x y z y z = ε u = wl<p′AAlll|Γ|+1p|A|(|Γ|+1)lpp+1πi<jiˆ (resp.
) la position de la dernière lettre de lue à l'étape (resp.
) de . Nous avons . Par conséquent, nous pouvons factoriser avec , , , . (Par nous désignons les lettres de de inclus à exclusif.) Par construction, .jˆwijπiˆ≤jˆw=uvxyzyz=ϵ0⋯ˆiu=w0⋯iˆv=wˆi⋯ˆjv=wiˆ⋯jˆx=wˆj⋯|w|x=wjˆ⋯|w|wx⋯ywx⋯ywwxxyy|vxy|≤p|vxy|≤p
Nous devons également montrer que , mais cela découle de notre observation ci-dessus: les symboles de pile plus profonds que ne sont jamais sautés, il n'y a donc aucun moyen de distinguer configurations qui sont égales selon notre définition, et un chemin d'acceptation pour est construit à partir de celui de en répétant les étapes entre et , fois.∀n≥0,uvnxynz=uvnx∈L∀n≥0,uvnxynz=uvnx∈Llluvnxuvnxwwiijjnn
Enfin, nous avons aussi , car si , alors, parce que nous avons la même configuration aux étapes et dans , serait un chemin acceptant pour , contredisant la minimalité de .|v|>0|v|>0v=ϵv=ϵiijjπππ′=π0⋯iπj⋯|π|π′=π0⋯iπj⋯|π|wwππ
(Notez que ce cas revient à appliquer le lemme de pompage pour les langues régulières en codant en dur les symboles de pile les plus élevés dans l'état de l'automate, ce qui est suffisant car est suffisamment petit pour garantir que est plus grand que le nombre d'états de cet automate L'astuce principale est que nous devons ajuster pour
-transitions.)llll|w||w|ϵϵ
Cas 2. . Soit un niveau . A toute taille de pile , , nous associons le dernier push et le premier pop . Par définition, et . Voici une illustration de cette construction. Pour simplifier le dessin, j'omet la distinction entre les positions des chemins et les positions des mots que nous devrons faire plus tard.l≥p′l≥p′i,j,ki,j,kp′p′hhsi≤h≤sjsi≤h≤sj
lp(h)=max({y≤j|sy=h})lp(h)=max({y≤j|sy=h})
fp(h)=min({y≥j|sy=h})fp(h)=min({y≥j|sy=h})i≤lp(h)≤ji≤lp(h)≤jj≤fp(h)≤kj≤fp(h)≤k
On dit que l' état complet d'une taille de pile est le triple formé par:hh
- l'état de l'automate à la positionlp(h)lp(h)
- le symbole de pile le plus haut à la positionlp(h)lp(h)
- l'état de l'automate à la positionfp(h)fp(h)
Il y a états complets possibles, et tailles de pile entre et
, donc, selon le principe du pidgeonhole, il existe deux tailles de pile avec
telles que les états complets en et sont les mêmes. Comme dans le cas 1, nous définissons par , , et les positions des dernières lettres de lues aux positions correspondantes dans . On factorise oùp′p′p′+1p′+1sisjg,hsi≤g<h≤sjgh^lp(g)^lp(h)^fp(h)^fp(g)wπw=uvxyzu=w0⋯^lp(g),
,
,
et .v=w^lp(g)⋯^lp(h)x=w^lp(h)⋯^fp(h)y=w^fp(h)⋯^fp(g)z=w^fp(g)⋯|w|
Cette factorisation garantit que (car par notre définition des niveaux).|vxy|≤pk≤p
Nous devons aussi montrer que . Pour ce faire, observez que chaque fois que nous répétons , nous partons du même état et du même sommet de pile et nous ne passons pas en dessous de notre position actuelle dans la pile (sinon nous aurions à repousser à la position actuelle, violant la maximalité de ), nous pouvons donc suivre le même chemin dans et pousser la même séquence de symboles sur la pile. Par la maximalité de et la minimalité de , lors de la lecture de , nous ne sautons pas en dessous de notre position actuelle dans la pile, donc le chemin suivi dans l'automate est le même quel que soit le nombre de fois nous avons répété∀n≥0,uvnxynz∈Lvlp(g)Alp(h)fp(h)xv. Maintenant, si nous répétons autant de fois que nous répétons , puisque nous partons du même état, puisque nous avons poussé la même séquence de symboles sur la pile avec nos répétitions de , et puisque nous ne sautons pas plus que ce que a empilés par un minimum de , nous pouvons suivre le même chemin dans et faire apparaître la même séquence de symboles dans la pile. Par conséquent, un chemin acceptant de peut être construit à partir du chemin acceptant pour .wvvvfp(g)Auvnxynzw
Enfin, nous avons également , car comme dans le cas 1, si et , nous pouvons construire un chemin d'acceptation plus court pour en supprimant et .|vy|>1v=ϵy=ϵwπlp(g)⋯lp(h)πfp(h)⋯fp(g)
Par conséquent, nous avons une factorisation adéquate dans les deux cas, et le résultat est prouvé.
(Nous remercions Marc Jeanmougin de m'avoir aidé avec cette preuve.)