ポンピング補題のバリアントがあります。私はあなたのものを使います。
実際には3つの長さの条件があることに注意してください。欠けているのは、単語の最小の長さの合計です。第二条件で扱います。
(大きな)一言で言えば:
サブツリーは、フリンジに最大1つの非終端を持つ構文解析ツリーのサブパートと呼びます。ポンピング補題は
、フリンジの非終端がサブツリーのルートと同じである再帰サブツリーを使用します。解析ツリー全体がサブツリーです。
ここで定義されているサブツリー(および再帰的なサブツリー)が問題の中心です。それらの存在は、文脈自由に直接関係しています。
1番目の条件:パースツリーに非生産的な(terminaシンボルのないフリンジ)再帰サブツリーが存在する場合、それが短絡される可能性があるため、フリンジに終端シンボルが含まれていることを常に確認します。
有限性の問題:2回使用されます。再帰的なサブツリーを含まないサブツリーがある場合、サブツリー内のパスには同じラベルが2倍ありません(サブツリーのルートを除く)。サブツリーは有限の深さ(非端末の数以下)で有限に分岐しているため、そのようなサブツリーの有限のセットがあり、フリンジで有限の文字列のセットのみが生成されます。数が有限であるため、フリンジの長さには上限があります。逆に、フリンジが境界を超える場合、それは再帰的なサブツリーを含んでいることを示しています。
「欠落状態」:その「欠落状態」∣s∣≥p 構文解析ツリー内に少なくとも1つの再帰的サブツリーがポンピングできるように、ストリングが十分に長いことを確認してください。
2番目の条件:解析ツリー内の別の再帰的サブツリーを支配することも含まないことも、常に再帰的サブツリーをポンピングするために取得できます。含まれている場合は、他の再帰サブツリーを取得します。解析ツリーは有限なので、これは終了します。あなたはサブツリーで終わる(のためにvy そしてのために x)再帰的なサブツリーを含まず、上記の有限性分析は上限の存在を保証します。
通常の文法の場合、あまり分岐しないサブツリーがあります。これは、一部の文字列が次のように置き換えられたCFケースと本当に同じです。ϵ。
CFの場合、文法がCNFであると仮定することで、補題またはそのバリエーションの証明に便利です(補題の変形にも依存します)。
正式な証明の多くは、数学的な表現であり、理解ではありません。
これは興味深い演習でした。