我试图使用泵浦引理证明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
同时包含a
和b
,或只有b
或a
。
如何抽出它来表明?
答案 0 :(得分:-2)
我同意cHao,使用抽取引理来表明语言不是Context Free。要证明语言是无上下文的,请构建无上下文语法或DFA。
{y#x | y
是x
}的一个子集,超过字母{a, b}*
似乎没有上下文,只是快速查看。
设s = (a|b)^p#(a|b)^(2p)
这样就是p
字符位于#
和2p
之前的字符串,以使其成为一个简单的子集。
我们现在需要将此字符串分解为x y^i z
部分|y| > 0
和|xy| = p
。因此y
必须由#
之前的任何字符串组成。我们现在可以“抽出”这个字符串了。 #
之前的第一个字符串大于第二个字符串。这不再是下半场的一个子集。这是一个矛盾,所以这种语言不是上下文。