我应该如何L={a^n b^m | n=km for k in N}
使用抽水引理证明这不是常规语言?
我从输入一个词w
开始L
,w=a^n b^m
用n=km
一些k
输入N
。有三种可能的分解w
:
a^i * a^j * a^(n-i-j) b^m
a^i * a^(n-i) b^j * b^(m-j)
a^n b^i * b^j * b^(m-i-j)
抽点 2) 的中间部分会导致混淆的词,这显然不是 in L
,但我不明白为什么 1) 不能给你一个很好的分解:
假设你抽水a^j
x
时间。那么新单词中 a 的数量将是i+xj+n-i-j = n+(x-1)j
。我们知道n=km
一些m
。我们必须证明存在一个x
这样的新词不在L
. 但是让我们假设j=m
(这当然是可能的,因为n=km
总是有足够数量的 a,除非当k=0
,但是我们得到一个微不足道的情况)。然后n+(x-1)j = km+(x-1)m = m(n+x-1)
which 是{a^n b^m | n=km for k in N}
all的形式x
。所以对于每一个w
我们都有一个分解uvz
,这样u v^i z
就L
适用于所有i
。因此,由抽引理,L
是正则的。
我错过了什么?
编辑:给出的泵送引理的公式:
让
L
成为带有k
状态的 DFA 接受的常规语言。让w
任何单词 inL
with length>= k
。然后w
可以写成u v z
with|uv| <=k
,v>0
andu v^i z
inL
for alli>=0