誰かが、文脈自由でない言語の例に、文脈自由でない補完物を求めました。
最初の答えは言う:
言語 は文脈自由ではありません(ポンピングレンマを使用して表示できるため、ここを参照してください)。その補集合はコンテキストフリーです(ここに示すように)。
たぶん実際にはこれは真実かもしれませんが、上記の情報を考えると、これがそのような言語の有効な例であると私は確信していません。私は以前にがCFではないことを証明したので、それを受け入れることに問題はありません。ただし、CFGと与えられた証明は間違っています。私は本当に単純な反例を示すことができます:文字列。明らかにの形式ではないのでです。ただし、は、説明されているCFGを使用して構築することはできません。
証明:文字列長さが偶数であるため、文字列はまたはの形式ではありません。したがって、それはまたはの形式である必要がありますが、ストリングの両方の半分の中央に同じ文字()があるため、これは不可能です。したがって、は矛盾します。
2番目の答えは言う:
ウィキペディアで見られる例:put、。PDAを定義することで、とがコンテキストフリーであることが簡単にわかります。あなたはそれらが決定論的文脈自由言語であることに気づくことができます、それは補完の下で閉じられたクラスです。したがって、は、文脈自由ではない補語持つ文脈自由言語です。
これは反証するのがさらに簡単です。確かに、決定論的な文脈自由言語は補完の下で閉じられていますが、それらは結合の下で閉じられていません。したがって、言語は必ずしも文脈自由ではありません。
私は現在、まだTheory of Computingを受講しているので、何か問題が発生したか、明らかな真実を見落とした可能性があります。誰かが私の主張を否定できますか?そうでない場合は、CF以外の補完機能を備えたCF言語の有効な例を提供できますか?