Skip to main content

証明:文字列長が素数の文字列集は非正規言語

これは先の証明の日本語訳である。ここでは長さが素数の文字列で構成された言語は正規言語でないをことを示す。 この証明には正規言語の反復補題の対偶を用いる。 全ての正規言語はこの補題を満たすので、この補題が満たされないことを示せば、前記の命題を証明することができる。

対偶法による証明 #

対偶が真、つまり前記の言語が正規言語、だと仮定する。 すると、この言語を理解する有限オートマトンが存在する。 これを仮にMと呼ぶ。 さらに、この言語について反復補題が成立する。 即ち、L(M)に属する任意の文字列wについて長さがそれ以上であれば 下記の条件を満たすw=xyzに分解することができる反復数p(自然数)が存在する。

  1. |y|>0
  2. |xy|p
  3. iZ0,xyizL(M)

ここで、素数は無限に存在するので、pより大きい最小の素数をkとすれば、 |w|=kを満たすwL(M)が存在するはずである。 wL(M)|w|>pなので、補題の条件を満たしたw=xyzに分解することができる。

ここで新たな文字列vをv=xyk+1zと置く。 上記の条件3によりvL(M)なので、vの文字列長は素数である。 しかし|v|=|xyk+1z|=|xyz|+|yk|=k+|y|k=k(1+|y|)。 明らかにkk(1+|y|)であり、k>1なので、|v|は素数ではない。 この矛盾は仮定が偽であったことを示すので、反復補題により前記の言語は正規でない。 Q.E.D.

思いのほか、日本語での証明は困難・・・