为什么(如果这样),分隔符#会在两种语言之间产生差异?
说:
L = { w s :| w | = | s |瓦特,š ∈ { 0 ,1 }∗,w ≠ s }
大号#= { w #s :| w | = | s |瓦特,š ∈ { 0 ,1 }∗,w ≠ s }
这是将大号表示为C F L的证明和语法CF大号
以下进出口增加了一个证明大号#∉ çF大号:
请问#标志真正有所作为?如果是这样,那是为什么呢?如果不是,哪一个证明是错误的,在哪里?
证明大号#∉ çF大号:
通过该矛盾的方式设大号∈ ÇF大号。令p > 0是
无上下文语言的抽运引数保证的大号的抽运常数。我们认为单词
s = 0米1个p#0p1个米其中m=p!+p所以s∈L。由于|s|>p,根据抽运引理存在一个表示s=uvxyz,使得
|vy|>0,|vxy|≤p,和uvjxyjz∈L每个j≥0。
我们遇到一些案例矛盾:
- 如果v或y包含#:那么对于i=0,我们得到了uxz不包含#,所以uxz∉L矛盾。
如果两个v和y留给#:那么对于i=0,我们得到了
uxz的形式为w#x,其中|w|<|x|,所以uxz∉L。
如果v和y都对#正确:与最后一种情况类似。
如果v留给#,y留给它,|v|<|y|:然后,对于i=0,我们得到uxz的形式为w#x,其中|w|>|x|,所以uxz∉L。
如果v留给#,y留给它,|v|>|y|:类似于上一种情况。
如果v留给#,y留给它,|v|=|y|:这是最有趣的情况。由于|vxy|≤p,v必须被包含在1p的一部分s和y在0p部分。因此,它认为v=1k和y=0k对于相同的1≤k≤p (实际上必须是k<p/2)。对于每个j≥0,则认为
uvj+1xyj+1z=0m1p+j⋅k#0p+j⋅k1m,因此,如果它发生m=p+j⋅k,则认为uvj+1xyj+1z∉L在矛盾。为此,我们必须取j=(m−p)/k,仅当m−p可被k整除时才有效。回想一下,我们选择了m=p+p!,因此m−p=p!和p!是通过任何整除1≤k≤p为想要的。