使用抽取引理来证明语法不是没有上下文的吗?

时间:2012-06-13 04:54:22

标签: context-free-grammar formal-languages pumping-lemma

我试图使用泵浦引理证明L={y#x|(y is a substring of x) ∧x,y∈{a,b}^* }不是上下文无关,但我似乎无法做到这一点。如果

|vy|≠ε ,|vxy|≤k , uv^n xy^n z∈L ,∀n≥0

然后,vxy同时包含ab,或只有ba

如何抽出它来表明?

1 个答案:

答案 0 :(得分:-2)

我同意cHao,使用抽取引理来表明语言不是Context Free。要证明语言是无上下文的,请构建无上下文语法或DFA。

{y#x | yx}的一个子集,超过字母{a, b}*似乎没有上下文,只是快速查看。

s = (a|b)^p#(a|b)^(2p)这样就是p字符位于#2p之前的字符串,以使其成为一个简单的子集。

我们现在需要将此字符串分解为x y^i z部分|y| > 0|xy| = p。因此y必须由#之前的任何字符串组成。我们现在可以“抽出”这个字符串了。 #之前的第一个字符串大于第二个字符串。这不再是下半场的一个子集。这是一个矛盾,所以这种语言不是上下文。