证明语言不是上下文无关的吗?

时间:2018-10-23 17:31:04

标签: automata

如何证明以下语言不是上下文无关的?任何帮助将不胜感激。谢谢。 L = {0 ^ n | n是素数}

1 个答案:

答案 0 :(得分:0)

证明是矛盾的。假设该语言是上下文无关的。然后,通过上下文无关语言的抽取引理,L中的任何字符串都可以写成uvxyz,其中| vxy | 0,并且对于所有自然数k,u(v ^ k)x(y ^ k)z也是该语言。选择0 ^ m,其中m是任意质数> p。然后,我们必须能够将0 ^ m编写为uvxyz,以便| vy | >0。让| vy | = r。那么对于任何自然数k,0 ^(m-r + kr)必须是质数。但是,选择k = m + 1会得出m-r +(m + 1)r = m-r + mr + r = m(1 + r),这不能是素数,这是一个矛盾。因此,我们关于该语言是无上下文上下文的假设得到了证实。