Ich habe wieder über dieses Problem nachgedacht und denke, ich habe einen vollständigen Beweis. Es ist etwas kniffliger als ich erwartet hatte. Kommentare sind sehr willkommen! Update: Ich habe diesen Proof auf arXiv eingereicht, falls dies für jemanden nützlich ist: http://arxiv.org/abs/1207.2819
Sei eine kontextfreie Sprache über einem Alphabet . Sei ein Pushdown-Automat, der mit Stack-Alphabet erkennt . Wir bezeichnen mitdie Anzahl der Zustände von A . Ohne Verlust der Allgemeinheit können wir davon ausgehen, dass Übergänge von A das oberste Symbol des Stapels platzieren und entweder kein Symbol auf den Stapel oder das vorherige oberste Symbol und ein anderes Symbol auf den Stapel schieben.L LΣ ΣA AL LΓ Γ| A | |A|A AAA
Wir definierenund die Pumplänge und zeigt, dass alle so sind, dass haben eine Zerlegung der Form so dass , und .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
Sei so, dass . Sei ein akzeptierender Pfad minimaler Länge für (dargestellt als Folge von Übergängen von ), so bezeichnen wir seine Länge mit. Wir können für, die Größe des Stapels an der Position des akzeptierenden Pfades. Für alle definieren wir einen
Pegel über als eine Menge von drei Indizes mit so dass:w ∈ L w∈L| w | > p |w|>pπ πw wA A| π | |π|0 ≤ i < | π | 0≤i<|π|s isi i iN > 0 N>0NN π πi , j , k i,j,k0 ≤ i < j < k ≤ p0≤i<j<k≤p
- s i = s k , s j = s i + Nsi=sk,sj=si+N
- für alle so, dass ,n i ≤ n ≤ j s i ≤ s n ≤ s jni≤n≤jsi≤sn≤sj
- für alle so, dass , .n j ≤ n ≤ k s k ≤ s n ≤ s knj≤n≤ksk≤sn≤sk
(Ein Beispiel hierfür finden Sie in der Abbildung für Fall 2, in der ein Level dargestellt ist.)NN
Wir definieren das Niveau von als das maximale so dass ein Niveau hat
. Diese Definition wird durch die folgende Eigenschaft motiviert: wenn die Größe des Stapels über einen Pfad größer als sein Pegel , dann wird die Stapel Symbole mehr als Ebene wird tief nie geknallt werden. Wir unterscheiden nun zwei Fälle: entweder , wobei wir wissen , dass die gleiche Konfiguration für den Automaten Zustand und die obersten Symbole des Stapels zweimal in der ersten auftreten Stufe von , oderl π N π N π l l l < p ' l p + 1 π l ≥ p 'lπNπNπlll<p′lp+1πl≥p′und es muss eine Stapel- und Entstapelungsposition geben, die beliebig oft wiederholt werden kann, aus der wir und konstruieren .v yvy
Fall 1. . Wir definieren die Konfigurationen von , wie die Paare von einem Zustand und einer Folge von Stapel Symbole (wo Stapel von Größe von weniger als mit durch sie zu Klotzen dargestellt werden mit einem speziellen leeren Symbol, weshalb wir verwenden bei der Definition von ). Per Definition gibt es
solche Konfigurationen, die kleiner als . In den ersten Schritten von wird dieselbe Konfiguration also zweimal an zwei verschiedenen Positionen angetroffen, z. B. . Bezeichnen mitl < p ' A A l l l | Γ | + 1 p | A | ( | & Ggr; | + 1 ) l p p + 1 π i < j il<p′AAlll|Γ|+1p|A|(|Γ|+1)lpp+1πi<jiˆ (bzw.
) die Position des letzten Buchstabens von , der in Schritt (bzw.
) von gelesen wurde . Wir haben . Wir können also mit , , , . (Mit bezeichnen wir die Buchstaben von von einschließlich bis ausschließlich.) Mit .ˆjjˆwwiijjππˆi≤ˆjiˆ≤jˆw=uvxyzw=uvxyzyz=ϵyz=ϵu=w0⋯ˆiu=w0⋯iˆv=wˆi⋯ˆjv=wiˆ⋯jˆx=wˆj⋯|w|x=wjˆ⋯|w|wx⋯ywx⋯ywwxxyy|vxy|≤p|vxy|≤p
Wir müssen auch zeigen, dass , aber dies folgt aus unserer obigen Beobachtung: Stapelsymbole, die tiefer als sind, werden niemals gesprungen, so dass es keine Möglichkeit gibt, zu unterscheiden Konfigurationen, die gemäß unserer Definition gleich sind, und ein akzeptierender Pfad für wird aus dem von indem die Schritte zwischen und , mal wiederholt werden .∀n≥0,uvnxynz=uvnx∈L∀n≥0,uvnxynz=uvnx∈Llluvnxuvnxwwiijjnn
Schließlich haben wir auch , denn wenn , dann, weil wir die gleiche Konfiguration in den Schritten haben und in , wäre ein akzeptierender Weg für , der der Minimalität von widerspricht .|v|>0|v|>0v=ϵv=ϵiijjπππ′=π0⋯iπj⋯|π|π′=π0⋯iπj⋯|π|wwππ
(Beachten Sie, dass dieser Fall beträgt das Pumping - Lemma für reguläre Sprachen auf die Anwendung von hartzucodieren die obersten Stapel Symbole in den Automaten Zustand, der ausreichend ist , weil klein genug ist, um sicherzustellen größer ist als die Anzahl der Zustände dieses Automaten Der Haupttrick ist, dass wir uns auf -Übergänge einstellen müssen
.)llll|w||w|ϵϵ
Fall 2. . Sei ein p' Level. Zu jeder Stapelgröße , , wir den letzten Push und den ersten Pop . Per Definition sind und . Hier ist eine Illustration dieser Konstruktion. Um das Zeichnen zu vereinfachen, verzichte ich auf die Unterscheidung zwischen Pfadpositionen und Wortpositionen, die wir später vornehmen müssen.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
Wir sagen, dass der vollständige Zustand einer Stapelgröße das Tripel ist, das gebildet wird durch:hh
- der Automatenzustand an Positionlp(h)lp(h)
- das oberste Stapelsymbol an Positionlp(h)lp(h)
- der Automatenzustand an Positionfp(h)fp(h)
Es gibt mögliche Vollzustände und Stapelgrößen zwischen und
, so dass nach dem Pidgeonhole-Prinzip zwei Stapelgrößen mit
so dass die Vollzustände bei und sind die gleichen. Wie in Fall 1 definieren wir durch , , und die Positionen der letzten Buchstaben von die an den entsprechenden Positionen in gelesen wurden . Wir wobeip′p′p′+1p′+1sisisjsjg,hg,hsi≤g<h≤sjsi≤g<h≤sjgghh^lp(g)lp(ˆg)^lp(h)lp(ˆh)^fp(h)fp(ˆh)^fp(g)fp(ˆg)wwππw=uvxyzw=uvxyzu=w0⋯^lp(g)u=w0⋯lp(ˆg),
,
,
und .v=w^lp(g)⋯^lp(h)v=wlp(ˆg)⋯lp(ˆh)x=w^lp(h)⋯^fp(h)y=w^fp(h)⋯^fp(g)z=w^fp(g)⋯|w|
Diese Faktorisierung stellt sicher, dass (weil durch unsere Definition von Ebenen).|vxy|≤pk≤p
Wir müssen auch zeigen, dass . Beachten Sie dazu, dass wir jedes Mal, wenn wir wiederholen , von demselben Status und derselben Stapelspitze ausgehen und nicht unter unserer aktuellen Position im Stapel springen (andernfalls müssten wir an der aktuellen Position erneut drücken und verletzen) die Maximalität von ), so dass wir den gleichen Pfad in verfolgen und die gleiche Symbolsequenz auf den Stapel legen können. Durch die Maximalität von und die Minimalität von werden wir beim Lesen von nicht unter unsere aktuelle Position im Stapel springen, sodass der im Automaten verfolgte Pfad unabhängig von der Anzahl von gleich ist mal haben wir wiederholt∀n≥0,uvnxynz∈Lvlp(g)Alp(h)fp(h)xv. Wenn wir nun so oft wiederholen , wie wir wiederholen , weil wir von demselben Zustand ausgehen, weil wir mit unseren Wiederholungen von dieselbe Symbolsequenz auf den Stapel verschoben haben und weil wir nicht mehr popen, als hat gestapelt durch die Minimierung von können wir dem gleichen Pfad in folgen und die gleiche Symbolsequenz aus dem Stapel ziehen. Daher kann ein Akzeptanzpfad von aus dem Akzeptanzpfad für konstruiert werden .wvvvfp(g)Auvnxynzw
Schließlich haben wir auch , denn wie in Fall 1 können wir , wenn und , einen kürzeren Akzeptanzpfad für erstellen, indem wir und entfernen. .|vy|>1v=ϵy=ϵwπlp(g)⋯lp(h)πfp(h)⋯fp(g)
Wir haben also in beiden Fällen eine ausreichende Faktorisierung und das Ergebnis ist bewiesen.
(Dank geht an Marc Jeanmougin, der mir bei diesem Beweis geholfen hat.)