L={a^n b^m | n=km for k in N}
ポンピング補題を使用して、正規言語ではないことをどのように証明すればよいですか?
w
私は単語を で、L
一部をで取ることから始めました。には 3 つの可能な分解があります。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) の中間部分をポンピングすると、混同された単語が生成されますが、これは明らかに にありませんがL
、理由がわかりません。
a^j
x
ポンプ回数を考えてみましょう。その場合、新しい単語の a の量は になりますi+xj+n-i-j = n+(x-1)j
。私たちn=km
はいくつか知っていm
ます。x
新しい単語が にないようなが存在することを示さなければなりませんL
。しかし、仮定してみましょう( の場合を除いて、常に十分な量の a があるj=m
ため、これは確かに可能ですが、その場合は些細なケースになります)。次に、これはallの形式です。したがって、それぞれについて、for all のような分解があります。したがって、ポンピング補題により、は正則です。n=km
k=0
n+(x-1)j = km+(x-1)m = m(n+x-1)
{a^n b^m | n=km for k in N}
x
w
uvz
u v^i z
L
i
L
私は何が欠けていますか?
編集:与えられたポンピング補題の定式化:
L
状態を持つ DFA によって受け入れられる通常の言語としますk
。長さw
の任意の単語とします。次に、 with 、およびin for all のように記述できます。L
>= k
w
u v z
|uv| <=k
v>0
u v^i z
L
i>=0