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 はコンテキストフリー言語ではありません。