ws如何与| w | = | s | 和w≠s是上下文无关的,而w#s不是?


9

为什么(如果这样),分隔符#会在两种语言之间产生差异?

说:

L={ws:|w|=|s|w,s∈{0,1}∗,w≠s}

L#={w#s:|w|=|s|w,s∈{0,1}∗,w≠s}

这是将L表示为C F L的证明和语法CFL

以下进出口增加了一个证明L#∉CFL:

请问#标志真正有所作为?如果是这样,那是为什么呢?如果不是,哪一个证明是错误的,在哪里?

证明L#∉CFL:

通过该矛盾的方式设L∈CFL。令p>0是 无上下文语言的抽运引数保证的L的抽运常数。我们认为单词 s=0m1p#0p1m其中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为想要的。

Answers:


7

您的证明是正确的,我错了。我花了一段时间才弄清楚我的困惑所在,但是在Yuval的帮助下,我认为我明白了。

让我们考虑三种语言

L=={xy∣|x|=|y|,x≠y},L#={x#y∣x≠y}, andL=#={x#y∣|x|=|y|,x≠y}.

L=

L#

L=#

  1. L=
  2. 而不是“接受如果长度不平等或不匹配”,我们必须“接受如果长度等于和不匹配”。非确定性不能帮助我们和!

x≠y|x|=|y|

L=xy


L=∈CFL⟹L=#∈CFLf(L=#)=L=f#f−1(L=)=L#L=#


L={x#y∣|x|=|y|}L∩L#=L=#

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.