私は再びこの問題について考えました、そして私は完全な証拠を持っていると思います。それは私が予想したものよりも少しトリッキーです。コメントは大歓迎です!更新:これが誰かに役立つ場合に備えて、arXivでこの証明を提出しました:http : //arxiv.org/abs/1207.2819
してみましょうアルファベットオーバー文脈自由言語とすることが。レッツ認識してプッシュダウンオートマトンもスタックアルファベットで、。示す の状態の数。一般性を失うことなく、遷移がスタックの最上位シンボルをポップし、スタックにシンボルをプッシュしないか、前の最上位シンボルと他のシンボルをスタックにプッシュすると仮定できます。LΣALΓ|A|AA
を定義します およびポンピングの長さで、すべてのがフォームの分解を持っているように、及び。p′=|A|2|Γ|p=|A|(|Γ|+1)p′w∈L|w|>pw=uvxyz|vxy|≤p|vy|≥1∀n≥0,uvnxynz∈L
してみましょうように。してみましょうのための最小限の長さの受諾パスで(の遷移のシーケンスとして表さ)、私たちがすることによって、その長さを示す。に対して定義することができます、受け入れパスの位置にあるスタックのサイズ。すべてのについて、の3つのインデックスセットとして上のレベルを定義します
。w∈L|w|>pπwA|π|0≤i<|π|siiN>0Nπi,j,k0≤i<j<k≤p
- si=sk,sj=si+N
- 、などのすべてのni≤n≤jsi≤sn≤sj
- すべてのためように、。nj≤n≤ksk≤sn≤sk
(この例については、レベルを示す以下のケース2の図を参照してください。)N
私たちは、レベルの定義の最大として、よう持っている
レベルのを。この定義は、次のプロパティによって動機付けられています。パス上のスタックのサイズがそのレベル超えた場合、レベルを超えるスタックシンボルはポップされません。ここで、2つのケースを区別します:(オートマトン状態とスタックの最上位シンボルの同じ構成が最初のステップで2回検出されることを知っている場合、またはlπNπNπlll<p′lp+1πl≥p′、および任意の回数繰り返すことができるスタッキングとアンスタッキングの位置が必要です。そこからとを構築します。vy
ケース1. 。私たちは、の構成定義の状態のカップルとしてとのシーケンススタックシンボル(ここで、サイズのスタックが未満にそれらをパディングで表すことで、我々が使用する理由である特別な空白のシンボルと定義するときの)。定義により、があります
このような構成は未満です。したがって、の最初のステップでは、同じ構成が2つの異なる位置、たとえばで2回発生します。で示すl<p′AAlll|Γ|+1p|A|(|Γ|+1)lpp+1πi<jiˆ(または
)ステップ(または
)で読み取られたの最後の文字の位置。我々は持っている。したがって、、、、を因数できます。。(によって、の文字をから排他的までから表します。)構成により、。jˆwijπiˆ≤jˆw=uvxyzyz=ϵu=w0⋯iˆv=wiˆ⋯jˆx=wjˆ⋯|w|wx⋯ywxy|vxy|≤p
また、表示するために持っている、これは私たちの観察上記から:より深いスタックシンボルなので、区別する方法はありませんポップされることはありません我々の定義に従って等しく設定、のために受け入れパスのものから構築されるとの間のステップ繰り返すことにより及び、回。∀n≥0,uvnxynz=uvnx∈Lluvnxwijn
最後に、もあります 、もしので我々はステップで同一の構成を有しているので、その後、およびで、最小性と矛盾する受け入れパスになります。|v|>0v=ϵijππ′=π0⋯iπj⋯|π|wπ
(注:この場合は、一番上のハードコーディングによって正規言語のためのポンピング補題を適用することになることために適切であるオートマトンの状態、スタックシンボルをそれを確実にするために十分に小さいがこのオートマトンの状態の数よりも多いです。主なトリックは、遷移を調整する必要があること
です。)ll|w|ϵ
ケース2 。ましょうなりレベルの。任意のスタックサイズ、に、最後のプッシュと最初のポップ。定義により、および。これがこの構造の例です。図面を単純化するために、後で行う必要があるパス位置と単語位置の区別を省略します。l≥p′i,j,kp′hsi≤h≤sj
lp(h)=max({y≤j|sy=h})
fp(h)=min({y≥j|sy=h})i≤lp(h)≤jj≤fp(h)≤k
スタックサイズの完全な状態は、次によって形成されるトリプルであると言います。h
- 位置のオートマトン状態lp(h)
- 位置の一番上のスタックシンボルlp(h)
- 位置のオートマトン状態fp(h)
あるの可能なフル状態が、およびとの間のスタックサイズと
、そう、pidgeonhole原理により、そこに存在する2スタックサイズと
例えばフル状態すなわちでとと同じです。ケース1と同様に、、、、およびによって、対応する位置で読み取られるの最後の文字の位置を定義します。因数ここで、p′p′+1sisjg,hsi≤g<h≤sjghlp(ˆg)lp(ˆh)fp(ˆh)fp(ˆg)wπw=uvxyzu=w0⋯lp(ˆg)、
、
、
、および。v=wlp(ˆg)⋯lp(ˆh)x=wlp(ˆh)⋯fp(ˆh)y=wfp(ˆh)⋯fp(ˆg)z=wfp(ˆg)⋯|w|
この因数分解により、(レベルの定義によりため)。|vxy|≤pk≤p
また、ことも示さなければなりません。これを行うには、を繰り返すたびに、同じ状態と同じスタックトップから開始し、スタック内の現在の位置の下にポップしないことを確認します(そうしないと、現在の位置で再度プッシュする必要があり、違反しますの最大値)ので、同じパスをたどり、同じシンボルシーケンスをスタックにプッシュできます。の最大値と最小値により、を読み取りながら、スタック内の現在の位置よりも下にポップしないため、オートマトンでたどるパスは、を繰り返した回数∀n≥0,uvnxynz∈Lvlp(g)Alp(h)fp(h)xv。ここで、を繰り返すのと同じ回数を繰り返すと、同じ状態から開始するため、繰り返しで同じシンボルシーケンスをスタックにプッシュしたため、を超えてポップしないため最小値によってスタックされ、の同じパスをたどり、スタックから同じシンボルシーケンスをポップできます。したがって、からの受け入れパスは、受け入れパスから構築できます。wvvvfp(g)Auvnxynzw
最後に、もあります、ケース1と同様、および場合、および削除することにより、受け入れパスを短くすることができます。。|vy|>1v=ϵy=ϵwπlp(g)⋯lp(h)πfp(h)⋯fp(g)
したがって、両方のケースで適切な因数分解が行われ、結果が証明されます。
(クレジットは、この証明を手伝ってくれたMarc Jeanmouginに送られます。)