Automata-theory-pumping-lemma-for-cfg

提供:Dev Guides
移動先:案内検索

CFGの補題のポンピング

補題

*L* がコンテキストフリー言語である場合、長さ*≥p *の任意のストリング *w∈L* が *w = uvxyz* として記述できるように、ポンピング長 *p* があります。ここで、* vy≠ε* 、 *| vxy | ≤p* 、およびすべての *i≥0に対して、uv ^ i ^ xy ^ i ^ z∈L* 。

ポンピング補題の応用

ポンピング補題は、文法に文脈がないかどうかを確認するために使用されます。 例を挙げて、どのようにチェックされるかを示しましょう。

問題

言語 L = \ {x ^ n ^ y ^ n ^ z ^ n ^ | n≥1} はコンテキストに関係なく、そうではありません。

溶液

*L* はコンテキストに依存しません。 そして、 *L* はポンピング補題を満たさなければなりません。

最初に、ポンピング補題の数 n を選択します。 次に、zを0 ^ n ^ 1 ^ n ^ 2 ^ n ^とします。

*z* を* uvwxyに分割します。*
  • | vwx | ≤nおよびvx≠ε。*

したがって、最後の0と最初の2は少なくとも(n + 1)の位置離れているため、 vwx には0と2の両方を含めることはできません。 2つのケースがあります-

ケース1 *- *vwx には2はありません。 この場合、 vx には0と1のみが含まれます。 次に、 L になければならない uwy には、 n 2がありますが、 n 0または1未満です。

ケース2 *- *vwx には0がありません。

ここで矛盾が発生します。

したがって、 L はコンテキストフリー言語ではありません。