帰納的言語

同義語:recursive language判定可能な言語decidable language

概要

帰納的言語(recursive language)とは、すべての入力で停止する Turing 機械であって、言語に属する文字列を受理し属さない文字列を拒否するもの(判定機)が存在するような形式言語のことであり、判定可能な言語ともいう。属さない入力では停止しなくてもよい機械で受理される帰納的可算言語と対になり、言語が帰納的であることは、その言語と補集合がともに帰納的可算であることと同値である。帰納的言語のクラスは補集合・和・共通部分で閉じ、正規言語・文脈自由言語・文脈依存言語を含む一方、機械と入力の組で受理が起きるものの言語 $A_{\mathrm{TM}}$ は帰納的可算だが帰納的でない。Chomsky 階層では文脈依存言語と句構造言語の間に位置する。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{div}[0]{\mathbin{÷}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 形式言語, Turing機械, 有限オートマトン

言語 $L$ と文字列 $w$ が与えられたとき、「$w\in L$ か」を有限の時間で必ず正しく答える機械的な手続きがあるかどうかは、計算の理論の基本的な問いである。そのような手続きを Turing 機械で実現できる言語を 帰納的言語(recursive language)または 判定可能な言語(decidable language)という。所属を「属するときだけ」確かめられる 帰納的可算言語 と対になる概念であり、Chomsky階層 では文脈依存言語のクラスと句構造言語のクラスの間に位置する。
この記事では、受理状態と拒否状態をもつ Turing 機械によって帰納的言語を定義し、正規言語が帰納的言語であること、帰納的言語のクラスが補集合・和・共通部分で閉じていること、言語が帰納的であることとその言語と補集合がともに帰納的可算であることが同値であること(thm-rl-post)を証明する。二台の機械を一台の上で同時に動かす並行模倣の補題(lem-rl-parallel)が、後半の証明に共通の道具になる。

定義

以下、$\Sigma$ は空でない有限集合(アルファベット)、$\Sigma^{*}$ は $\Sigma$ の元を有限個並べた文字列全体、$\varepsilon$ は空語、$|w|$ は文字列 $w$ の長さを表す。$\Sigma$ 上の言語とは $\Sigma^{*}$ の部分集合のことであり(形式言語)、$L$ の補集合を $\overline{L}:=\Sigma^{*}\setminus L$ と書く。$\mathbb{N}=\{0,1,2,\dots\}$ とする。

受理状態と拒否状態をもつ Turing 機械

$k\ge1$ を整数とする。$k$ テープの Turing 機械 とは、組 $M=(\Sigma,\Gamma,Q,\delta,q_0,q_{\mathrm{acc}},q_{\mathrm{rej}})$ であって次を満たすものをいう。

  1. $\Sigma$ はアルファベット(入力アルファベット)で、$\Gamma$ は $\Sigma$ と 空白記号 $\sqcup\notin\Sigma$ を含む有限集合(テープアルファベット)である。
  2. $Q$ は有限集合で、その元を 状態 という。$q_0$(初期状態)、$q_{\mathrm{acc}}$(受理状態)、$q_{\mathrm{rej}}$(拒否状態)は $Q$ の相異なる元である。
  3. $\delta\colon Q\times\Gamma^{k}\to Q\times\Gamma^{k}\times\{\mathrm{L},\mathrm{R},\mathrm{N}\}^{k}$ は写像で、遷移関数 という。
    各テープは $\mathbb{Z}$ で番号を付けたマスの列であり、テープの内容 は有限個の $i$ を除いて $\sqcup$ をとる写像 $\tau\colon\mathbb{Z}\to\Gamma$ である。状態 $r$、テープの内容 $\tau_1,\dots,\tau_k$、ヘッドの位置 $h_1,\dots,h_k\in\mathbb{Z}$ の組を 様相 という。$r\notin\{q_{\mathrm{acc}},q_{\mathrm{rej}}\}$ である様相について $\delta(r,\tau_1(h_1),\dots,\tau_k(h_k))=(r',b_1,\dots,b_k,D_1,\dots,D_k)$ のとき、次の様相 は、状態 $r'$、各 $\tau_j$ の $h_j$ 番目を $b_j$ に書き換えた内容、ヘッドの位置 $h_j+d_j$($d_j$ は $D_j=\mathrm{L},\mathrm{R},\mathrm{N}$ に応じて $-1,1,0$)からなる様相である。
    入力 $w=w_1\cdots w_n\in\Sigma^{*}$ の 初期様相 は、状態 $q_0$、テープ 1 の $0,\dots,n-1$ 番目に $w_1,\dots,w_n$ を書きほかのマスを空白にした内容、テープ 2 以降はすべて空白、ヘッドはすべて $0$ 番目、という様相である。初期様相から次の様相を $t$ 回とったものを $t$ ステップ後の様相 という。状態が $q_{\mathrm{acc}}$ または $q_{\mathrm{rej}}$ になったところで計算は 停止 し、停止するまでのステップ数を $t_M(w)\in\mathbb{N}\cup\{\infty\}$(停止しなければ $\infty$)と書く。$q_{\mathrm{acc}}$ で停止したとき $M$ は $w$ を 受理 し、$q_{\mathrm{rej}}$ で停止したとき 拒否 するという。$M$ が受理する文字列全体を $L(M)$ と書く。
帰納的言語と帰納的可算言語

$L\subset\Sigma^{*}$ を言語とする。

  1. ある Turing 機械 $M$ が、すべての $w\in\Sigma^{*}$ で停止し、$w\in L$ なら受理し、$w\notin L$ なら拒否するとき、$L$ を 帰納的言語(recursive language)または 判定可能な言語(decidable language)といい、$M$ を $L$ の 判定機 という。
  2. ある Turing 機械 $M$ について $L=L(M)$ となるとき、$L$ を 帰納的可算言語(recursively enumerable language)という。$w\notin L$ のとき、$M$ は $w$ を拒否してもよく、停止しなくてもよい。
    $\Sigma$ 上の帰納的言語全体を $\mathcal{R}(\Sigma)$、帰納的可算言語全体を $\mathcal{RE}(\Sigma)$ と書く。判定機は $L$ を受理する機械でもあるので、$\mathcal{R}(\Sigma)\subset\mathcal{RE}(\Sigma)$ である。
定義の流儀

上の定義は MSm24 Definition 4.1.1(p. 139)、Definition 5.1.1(p. 157)、Definition 5.4.1(p. 173)に従う。同書は帰納的可算言語を enumerable language とよぶ。Chomsky階層 の記事の定義「帰納的言語」も同じものである。テープの本数は $1$ に限ってもよい。$k$ テープの機械は、受理すること・拒否すること・停止しないことをそれぞれ保ったまま 1 テープの機械に直せるからである(MSm24 Theorem 4.3.1、p. 148。この記事では証明しない)。この記事の証明はテープの本数を限らない定義のまま進める。
Turing機械 の記事の機械は、遷移が定義されないところで停止し、自然数の関数を計算するものとして定義されている。言語の判定では「はい」と「いいえ」の二通りの停止を区別する必要があるので、受理状態と拒否状態を分けた。
「帰納的」は recursive の訳語で、μ再帰関数 の「再帰」と同じ英語に当たる。集合論の 帰納的集合(空集合を含み後続者をとる操作で閉じた集合)とは別の概念である。

直感

帰納的言語と帰納的可算言語の違いは、$w\notin L$ のときの機械の振る舞いにある。

機械$w\in L$ のとき$w\notin L$ のとき
判定機(帰納的言語)停止して受理する停止して拒否する
受理する機械(帰納的可算言語)停止して受理する拒否するか、停止しない

帰納的可算言語では、機械がなかなか停止しないとき、それが「いずれ受理する」のか「永久に停止しない」のかを途中で知る一般的な方法がない。判定機ならいつか必ず答えが出る。$L$ を受理する機械と、補集合 $\overline{L}$ を受理する機械の両方があれば、二台を一歩ずつ同時に動かして、先に受理したほうで答えを決められる。これが thm-rl-post の考え方である。逆に、帰納的可算言語であって補集合が帰納的可算でないものがあることが、二つのクラスが一致しない理由になる(cor-rl-atm-complement)。

例

前半と後半の長さが等しい文字列

$\Sigma=\{a,b\}$、$L=\{a^{n}b^{n}\mid n\in\mathbb{N}\}$ とする。2 テープの機械 $M$ を、$\Gamma=\{a,b,\sqcup,X\}$、$Q=\{s,m,z,q_{\mathrm{acc}},q_{\mathrm{rej}}\}$、初期状態 $s$ として、遷移を次で定める。読んだ記号の組と動きはテープ 1、テープ 2 の順に書き、書き換えを述べないときは読んだ記号をそのまま書く。

  • 状態 $s$ で $(a,\sqcup)$ を読んだら、テープ 2 に $X$ を書いて $(\mathrm{R},\mathrm{R})$ と動き、状態 $s$ のまま。
  • 状態 $s$ で $(b,\sqcup)$ を読んだら、$(\mathrm{N},\mathrm{L})$ と動いて状態 $m$ へ。$(\sqcup,\sqcup)$ を読んだら、$(\mathrm{N},\mathrm{L})$ と動いて状態 $z$ へ。
  • 状態 $z$ で $(\sqcup,\sqcup)$ を読んだら $q_{\mathrm{acc}}$ へ、それ以外を読んだら $q_{\mathrm{rej}}$ へ(動かない)。
  • 状態 $m$ で $(b,X)$ を読んだら、$(\mathrm{R},\mathrm{L})$ と動いて状態 $m$ のまま。$(\sqcup,\sqcup)$ を読んだら $q_{\mathrm{acc}}$ へ、それ以外を読んだら $q_{\mathrm{rej}}$ へ(動かない)。
  • 上に挙げない組では $q_{\mathrm{rej}}$ へ移る。
    $M$ が $L$ の判定機である。入力を $w=a^{n}u$($u$ は空語か、$b$ で始まる文字列)と書くと、状態 $s$ の間にテープ 2 へ $a$ の個数だけ $X$ を書き、状態 $m$ でそれを右から一つずつ $u$ の $b$ と照合する。
    場合分けの詳細を開く

    入力を $w=a^{n}u$($u$ は空語か、$b$ で始まる文字列)と書く。状態 $s$ で $i$ ステップ($0\le i\le n$)進んだ後、両ヘッドは $i$ 番目にあり、テープ 2 の $0,\dots,i-1$ 番目に $X$、ほかは空白である。

    • $u=\varepsilon$ のとき:$n$ ステップ後に $(\sqcup,\sqcup)$ を読み、テープ 2 のヘッドが $n-1$ 番目に移って状態 $z$ になる。そこは $n=0$ なら空白、$n\ge1$ なら $X$ なので、$n=0$ のときに限り受理する。$a^{n}\in L$ は $n=0$ のときに限るので正しい。
    • $u$ が $b$ で始まるとき:$n$ ステップ後に $(b,\sqcup)$ を読んで状態 $m$ になり、テープ 1 のヘッドは $n$ 番目、テープ 2 のヘッドは $n-1$ 番目にある。状態 $m$ で $(b,X)$ を $j$ 回読んだ後、ヘッドは $n+j$ 番目と $n-1-j$ 番目にあり、テープ 1 のヘッドは $u$ の $j+1$ 文字目を読み、テープ 2 のヘッドが $X$ を読むのは $j< n$ のときちょうどである。したがって $u=b^{n}$ なら $j=n$ で $(\sqcup,\sqcup)$ を読んで受理する。$u\ne b^{n}$ なら、$u$ の $j+1$ 文字目が $a$($j< n$ では $(a,X)$、$j=n$ では $(a,\sqcup)$)、$u=b^{j}$ で $j< n$($(\sqcup,X)$)、$u$ が $b^{n+1}$ で始まる($j=n$ で $(b,\sqcup)$)のいずれかが起き、拒否する。$a^{n}u\in L$ は $u=b^{n}$ と同値なので正しい。
    どの入力でも $|w|+2$ ステップ以内に停止するので、$L$ は帰納的言語である。$L$ は正規言語でない(正規言語 の記事の反例「前半と後半の長さが等しい文字列」)ので、帰納的言語は正規言語とは限らない。
帰納的言語の例
  • 正規言語はすべて帰納的言語である(thm-rl-regular)。とくに有限言語は帰納的言語である(正規言語 の記事の例「有限言語」)。
  • 文脈自由言語はすべて帰納的言語である(MSm24 Theorem 5.1.5、p. 160)。文脈依存言語もすべて帰納的言語であり(文脈依存言語 の記事の命題「所属問題の決定可能性」)、たとえば $\{a^{n}b^{n}c^{n}\mid n\ge1\}$ は文脈自由でない帰納的言語である(文脈自由でないことは Chomsky階層 の記事の例「階層を分ける言語」)。
  • Chomsky階層 の記事の命題「文脈依存でない帰納的言語」の言語 $D$ は、帰納的言語であって文脈依存言語でない。
帰納的でない言語

Turing 機械 $M$ と文字列 $w$ の組を $\{0,1\}$ 上の文字列 $\langle M,w\rangle$ に符号化し、
$$A_{\mathrm{TM}}:=\{\langle M,w\rangle\mid M\text{ は }w\text{ を受理する}\}\subset\{0,1\}^{*}$$
とおく(MSm24 §5.1.4、p. 161)。$A_{\mathrm{TM}}$ は帰納的可算言語である(MSm24 Theorem 5.4.4、p. 177。与えられた機械を与えられた入力で動かす機械を作る)が、帰納的言語でない(MSm24 Theorem 5.1.6、p. 162。対角線論法による)。この二つの事実はこの記事では証明しない。補集合 $\overline{A_{\mathrm{TM}}}$ は帰納的可算言語でもない(cor-rl-atm-complement)。また、帰納的可算でない言語の存在は個数の比較からも分かる(prop-rl-countable)。

性質

補集合

補集合で閉じること

$L\subset\Sigma^{*}$ が帰納的言語なら、補集合 $\overline{L}$ も帰納的言語である。

$M=(\Sigma,\Gamma,Q,\delta,q_0,q_{\mathrm{acc}},q_{\mathrm{rej}})$ を $L$ の判定機とし、受理状態と拒否状態の役割を入れ替えた機械 $\overline{M}:=(\Sigma,\Gamma,Q,\delta,q_0,q_{\mathrm{rej}},q_{\mathrm{acc}})$ を考える。次の様相は「状態が $\{q_{\mathrm{acc}},q_{\mathrm{rej}}\}$ に属さない様相に $\delta$ を施す」ことで定まり、この二元集合は入れ替えで変わらない。したがって $M$ と $\overline{M}$ は同じ入力から同じ様相の列をたどり、同じステップ数で同じ状態に入って停止する。その状態の意味だけが逆になる。$M$ はすべての入力で停止し、$w\in L$ なら $q_{\mathrm{acc}}$、$w\notin L$ なら $q_{\mathrm{rej}}$ で停止するので、$\overline{M}$ はすべての入力で停止し、$w\in\overline{L}$ なら受理し、$w\notin\overline{L}$ なら拒否する。よって $\overline{M}$ は $\overline{L}$ の判定機である。$\square$

証明は $M$ がすべての入力で停止することを使っている。帰納的可算言語を受理するだけの機械で同じ入れ替えをしても、補集合を受理する機械にはならない(ex-rl-counterexamples の 1 行目)。

正規言語

正規言語は帰納的言語である

正規言語は帰納的言語である。より詳しく、決定性有限オートマトン $\mathcal{A}$ に対し、1 テープの $L(\mathcal{A})$ の判定機であって、ヘッドを左へは動かさず、長さ $n$ の入力では $n+1$ ステップで停止するものが存在する。

正規言語は有限オートマトンで認識され(正規言語 の記事の命題「右線形文法と有限オートマトンの同値性」)、さらに決定性有限オートマトンで認識される(有限オートマトン の記事の命題「$\varepsilon$ 遷移の除去」「部分集合構成」)。そこで後半を示せばよい。
$\mathcal{A}=(S,\Sigma,\eta,s_0,F)$ を決定性有限オートマトンとし($\eta\colon S\times\Sigma\to S$。文字列への拡張も $\eta$ と書く)、$S$ に属さない二つの新しい元 $q_{\mathrm{acc}},q_{\mathrm{rej}}$ をとる。$\Gamma:=\Sigma\cup\{\sqcup\}$、$Q:=S\cup\{q_{\mathrm{acc}},q_{\mathrm{rej}}\}$ として、1 テープの機械 $M=(\Sigma,\Gamma,Q,\delta,s_0,q_{\mathrm{acc}},q_{\mathrm{rej}})$ の遷移を
$$ \delta(s,a):=(\eta(s,a),a,\mathrm{R})\quad(s\in S,\ a\in\Sigma),\qquad\delta(s,\sqcup):=\begin{cases}(q_{\mathrm{acc}},\sqcup,\mathrm{N})&(s\in F)\\(q_{\mathrm{rej}},\sqcup,\mathrm{N})&(s\notin F)\end{cases} $$
で定める($q_{\mathrm{acc}},q_{\mathrm{rej}}$ での値は使われないので任意に定める)。
入力 $w=w_1\cdots w_n$ について、$0\le i\le n$ のとき「$i$ ステップ後の様相は、状態 $\eta(s_0,w_1\cdots w_i)$、テープは初期のまま、ヘッドは $i$ 番目」であることを $i$ についての帰納法で示す。$i=0$ は初期様相そのものである($\eta(s_0,\varepsilon)=s_0$)。$i< n$ で成り立つとすると、状態は $S$ に属し、ヘッドは $w_{i+1}$ を読むので、$M$ は $w_{i+1}$ をそのまま書いて右へ動き、状態は $\eta(\eta(s_0,w_1\cdots w_i),w_{i+1})=\eta(s_0,w_1\cdots w_{i+1})$ になる。$i=n$ のときヘッドは $n$ 番目の空白を読むので、$n+1$ ステップ目に、$\eta(s_0,w)\in F$ なら $q_{\mathrm{acc}}$、そうでなければ $q_{\mathrm{rej}}$ に入って停止する。決定性有限オートマトンが $w$ を受理することは $\eta(s_0,w)\in F$ と同値である(有限オートマトン の記事の定義「非決定性有限オートマトンと決定性有限オートマトン」)から、$M$ は $L(\mathcal{A})$ の判定機である。$\square$

並行模倣

二台の機械の計算を、一台の機械の上で一歩ずつ同時に進める。先に停止した側はその場で止めておき、二台の状態の組が指定した条件を満たした時点で答えを出す。

並行模倣

$i=1,2$ について $M_i=(\Sigma,\Gamma_i,Q_i,\delta_i,q_0^{(i)},q_{\mathrm{acc}}^{(i)},q_{\mathrm{rej}}^{(i)})$ を $k_i$ テープの Turing 機械とし(入力アルファベットは共通)、$H_i:=\{q_{\mathrm{acc}}^{(i)},q_{\mathrm{rej}}^{(i)}\}$ とおく。入力 $w$ と $n\in\mathbb{N}$ に対し、$M_i$ の $\min(n,t_{M_i}(w))$ ステップ後の状態を $R_i(n)$ と書く。$E\subset Q_1\times Q_2$ を、どの元も少なくとも一方の成分が $H_1$ または $H_2$ に属するような部分集合とし、写像 $d\colon E\to\{\mathrm{acc},\mathrm{rej}\}$ を任意にとる。このとき $k_1+k_2$ テープの Turing 機械 $P$ であって、各 $w\in\Sigma^{*}$ について次を満たすものが存在する。

  1. $(R_1(n),R_2(n))\in E$ となる $n$ があれば、その最小のものを $n^{*}$ とすると、$P$ は $w$ で $2|w|+2+n^{*}$ ステップで停止し、$d(R_1(n^{*}),R_2(n^{*}))=\mathrm{acc}$ なら受理、$\mathrm{rej}$ なら拒否する。
  2. そのような $n$ がなければ、$P$ は $w$ で停止しない。

(機械の構成)$P$ のテープ $1,\dots,k_1$ で $M_1$ を、テープ $k_1+1,\dots,k_1+k_2$ で $M_2$ を模倣する。$\Gamma:=\Gamma_1\cup\Gamma_2$ とし、$Q_1\times Q_2$ に属さない新しい状態 $c,b,q_{\mathrm{acc}},q_{\mathrm{rej}}$ をとって $Q:=\{c,b,q_{\mathrm{acc}},q_{\mathrm{rej}}\}\cup(Q_1\times Q_2)$、初期状態を $c$ とする。読んだ記号の列を $(\vec x_1,\vec x_2)\in\Gamma^{k_1}\times\Gamma^{k_2}$ と書く。遷移関数を次で定める。

  • 写しの段階($a\in\Sigma$):状態 $c$ でテープ 1 とテープ $k_1+1$ の記号の組が $(a,\sqcup)$ なら、テープ $k_1+1$ に $a$ を書いてこの二本のヘッドを右へ動かし、状態 $c$ のまま。組が $(\sqcup,\sqcup)$ なら二本のヘッドを左へ動かして状態 $b$ へ。状態 $b$ で組が $(a,a)$ なら二本のヘッドを左へ動かし、状態 $b$ のまま。組が $(\sqcup,\sqcup)$ なら二本のヘッドを右へ動かして状態 $(q_0^{(1)},q_0^{(2)})$ へ。いずれもほかのテープは読んだ記号をそのまま書いてヘッドを動かさない。
  • 模倣の段階:状態 $(r_1,r_2)\in Q_1\times Q_2$ で $(\vec x_1,\vec x_2)$ を読んだとき、各 $i$ について、$r_i\notin H_i$ かつ $\vec x_i\in\Gamma_i^{k_i}$ なら $(r_i',\vec y_i,\vec D_i):=\delta_i(r_i,\vec x_i)$、そうでなければ $(r_i',\vec y_i,\vec D_i):=(r_i,\vec x_i,(\mathrm{N},\dots,\mathrm{N}))$ とおく。$P$ は $(\vec y_1,\vec y_2)$ を書いて $(\vec D_1,\vec D_2)$ のとおりに動き、$(r_1',r_2')\notin E$ なら状態 $(r_1',r_2')$ へ、$(r_1',r_2')\in E$ なら $d(r_1',r_2')=\mathrm{acc},\mathrm{rej}$ に応じて $q_{\mathrm{acc}},q_{\mathrm{rej}}$ へ移る。
  • 上に挙げない組では値を任意に定める。
    (正しさ)写しの段階で入力をテープ $k_1+1$ に写し、$2|w|+2$ ステップ後に二台の初期様相がそろう。そこから $n$ ステップ後の $P$ の様相は、まだ $E$ に入っていない限り、$M_1$ と $M_2$ のそれぞれ $\min(n,t_{M_i}(w))$ ステップ後の様相を並べたものになる。これを $n$ についての帰納法で確かめれば 1・2 が従う。
    帰納法の細部を開く

    (写しの段階)$m:=|w|$ とする。状態 $c$ で $j$ ステップ($0\le j\le m$)進んだ後、テープ 1 は初期のままで、テープ $k_1+1$ の $0,\dots,j-1$ 番目に $w_1,\dots,w_j$、ほかは空白であり、二本のヘッドは $j$ 番目にある。$j=m$ で $(\sqcup,\sqcup)$ を読んで状態 $b$ に移り、ヘッドは $m-1$ 番目に来る。状態 $b$ では二本のテープの同じマスに同じ文字があるので左へ戻り続け、$-1$ 番目で $(\sqcup,\sqcup)$ を読んでヘッドを $0$ 番目に戻す($m=0$ でも同じである)。こうして $2m+2$ ステップ後に、状態 $(q_0^{(1)},q_0^{(2)})$ で、テープ $1,\dots,k_1$ は $M_1$ の、テープ $k_1+1,\dots,k_1+k_2$ は $M_2$ の、入力 $w$ の初期様相と同じ内容とヘッドの位置になる。

    (模倣の段階)$t_{M_i}(w)$ は状態が初めて $H_i$ に入るステップ数であり、$q_0^{(i)}\notin H_i$ なので、$R_i(n)\in H_i$ は $t_{M_i}(w)\le n$ と同値である。とくに $(R_1(0),R_2(0))=(q_0^{(1)},q_0^{(2)})\notin E$ である。$n\in\mathbb{N}$ について、主張 $(\ast)_n$ を「$1\le n'\le n$ のすべての $n'$ で $(R_1(n'),R_2(n'))\notin E$ ならば、$P$ の $2m+2+n$ ステップ後の様相は、状態 $(R_1(n),R_2(n))$ で、$M_i$ を模倣するテープの内容とヘッドの位置は $M_i$ の $\min(n,t_{M_i}(w))$ ステップ後のもの($i=1,2$)である」とし、帰納法で示す。$n=0$ は写しの段階で示した。$(\ast)_n$ が成り立ち、仮定が $n+1$ まで成り立つとする。$M_i$ を模倣するテープの記号は $M_i$ の様相のものなので $\Gamma_i$ に属する。$R_i(n)\notin H_i$ なら $t_{M_i}(w)>n$ であり、$P$ は $\delta_i$ をそのまま施すので、その部分は $M_i$ の $n+1=\min(n+1,t_{M_i}(w))$ ステップ後のものになる。$R_i(n)\in H_i$ なら $t_{M_i}(w)\le n$ であり、$P$ はその部分も状態の第 $i$ 成分も変えないので、$M_i$ の $t_{M_i}(w)=\min(n+1,t_{M_i}(w))$ ステップ後のままである。どちらの場合も新しい組は $(R_1(n+1),R_2(n+1))$ であり、これは仮定により $E$ に属さないので、$P$ の状態はこの組になる。よって $(\ast)_{n+1}$ が成り立つ。

    1 の場合:$n^{*}\ge1$ であり、$(\ast)_{n^{*}-1}$ の様相から上と同じ計算で、次の一歩の新しい組は $(R_1(n^{*}),R_2(n^{*}))\in E$ となる。$P$ は $2m+2+n^{*}$ ステップ目に $d$ の値に応じた $q_{\mathrm{acc}}$ または $q_{\mathrm{rej}}$ に入って停止する。それ以前の状態は $c,b$ か $Q_1\times Q_2$ の元なので、それ以前には停止しない。2 の場合:すべての $n$ で $(\ast)_n$ が成り立ち、$P$ の状態は写しの段階の後つねに $Q_1\times Q_2$ に属するので、$P$ は停止しない。$\square$

和・共通部分・差

$L_1,L_2\subset\Sigma^{*}$ を言語とする。

  1. $L_1,L_2$ が帰納的言語なら、$L_1\cup L_2$、$L_1\cap L_2$、$L_1\setminus L_2$ も帰納的言語である。
  2. $L_1,L_2$ が帰納的可算言語なら、$L_1\cup L_2$ と $L_1\cap L_2$ も帰納的可算言語である。

記号は lem-rl-parallel のとおりとする。
1:$M_i$ を $L_i$ の判定機とする。$t_{M_i}(w)<\infty$ であり、$n\ge t_{M_i}(w)$ なら $R_i(n)$ は $M_i$ が停止したときの状態なので、$R_i(n)=q_{\mathrm{acc}}^{(i)}$ は $w\in L_i$ と同値である。$E:=H_1\times H_2$ とおくと、$(R_1(n),R_2(n))\in E$ となる最小の $n$ は $\max(t_{M_1}(w),t_{M_2}(w))$ である。$d(r_1,r_2)$ を「$r_1=q_{\mathrm{acc}}^{(1)}$ または $r_2=q_{\mathrm{acc}}^{(2)}$」のとき $\mathrm{acc}$、そうでないとき $\mathrm{rej}$ と定めれば、lem-rl-parallel の $P$ はすべての入力で停止して $L_1\cup L_2$ を判定する。「$r_1=q_{\mathrm{acc}}^{(1)}$ かつ $r_2=q_{\mathrm{acc}}^{(2)}$」のとき $\mathrm{acc}$ と定めれば $L_1\cap L_2$ を判定する。$L_1\setminus L_2=L_1\cap\overline{L_2}$ は、prop-rl-complement と共通部分の場合から帰納的である。
2:$M_i$ を $L_i$ を受理する機械とする。受理状態に入ればそれ以後 $R_i$ は変わらないので、ある $n$ で $R_i(n)=q_{\mathrm{acc}}^{(i)}$ となることは $w\in L_i$ と同値である。和については $E:=\{(r_1,r_2)\mid r_1=q_{\mathrm{acc}}^{(1)}\ \text{または}\ r_2=q_{\mathrm{acc}}^{(2)}\}$、共通部分については $E:=\{(q_{\mathrm{acc}}^{(1)},q_{\mathrm{acc}}^{(2)})\}$ とし、どちらも $d$ を恒等的に $\mathrm{acc}$ とする。lem-rl-parallel により、$P$ が $w$ を受理するのは $(R_1(n),R_2(n))\in E$ となる $n$ があるときちょうどであり、それはそれぞれ $w\in L_1\cup L_2$、$w\in L_1\cap L_2$ と同値である。よって $L(P)$ は求める言語である。$\square$

補集合との関係

帰納的言語と帰納的可算言語

言語 $L\subset\Sigma^{*}$ について、次は同値である。

  1. $L$ は帰納的言語である。
  2. $L$ と補集合 $\overline{L}$ はともに帰納的可算言語である。

1 から 2:判定機は $L$ を受理する機械でもあるので $L$ は帰納的可算である。prop-rl-complement により $\overline{L}$ も帰納的言語なので、帰納的可算である。
2 から 1:$M_1$ を $L$ を受理する機械、$M_2$ を $\overline{L}$ を受理する機械とする。lem-rl-parallel を
$$ E:=\{(r_1,r_2)\mid r_1=q_{\mathrm{acc}}^{(1)}\ \text{または}\ r_2=q_{\mathrm{acc}}^{(2)}\},\qquad d(r_1,r_2):=\begin{cases}\mathrm{acc}&(r_1=q_{\mathrm{acc}}^{(1)})\\\mathrm{rej}&(r_1\ne q_{\mathrm{acc}}^{(1)})\end{cases} $$
に適用して $P$ を作る。$w\in L$ のとき、$M_1$ は $w$ を $t_{M_1}(w)$ ステップで受理する。$w\notin\overline{L}$ なので $M_2$ は $w$ を受理せず、すべての $n$ で $R_2(n)\ne q_{\mathrm{acc}}^{(2)}$ である。また $n< t_{M_1}(w)$ では $R_1(n)\notin H_1$ である。よって $(R_1(n),R_2(n))\in E$ となる最小の $n$ は $t_{M_1}(w)$ で、そのとき $R_1(n)=q_{\mathrm{acc}}^{(1)}$ なので $P$ は受理する。$w\notin L$ のとき、$M_1$ は $w$ を受理しないのですべての $n$ で $R_1(n)\ne q_{\mathrm{acc}}^{(1)}$ であり、$w\in\overline{L}$ なので $M_2$ は $t_{M_2}(w)$ ステップで受理する。同様に最小の $n$ は $t_{M_2}(w)$ で、$R_1(n)\ne q_{\mathrm{acc}}^{(1)}$ なので $P$ は拒否する。したがって $P$ はすべての入力で停止する $L$ の判定機である。$\square$

この定理は MSm24 Theorem 5.7.1(p. 184)にある。自然数の集合について同じことを述べたものが、停止問題 の記事の定理「決定可能性と半決定可能性」である。

補集合が帰納的可算でない言語

ex-rl-nonexamples の $A_{\mathrm{TM}}$ について、補集合 $\overline{A_{\mathrm{TM}}}=\{0,1\}^{*}\setminus A_{\mathrm{TM}}$ は帰納的可算言語でない。とくに、帰納的可算言語のクラスは補集合で閉じていない。

$A_{\mathrm{TM}}$ は帰納的可算である(ex-rl-nonexamples)。$\overline{A_{\mathrm{TM}}}$ も帰納的可算なら、thm-rl-post により $A_{\mathrm{TM}}$ は帰納的言語になり、$A_{\mathrm{TM}}$ が帰納的でないこと(ex-rl-nonexamples)に反する。$\square$

文法による言い換え

言語 $L\subset\Sigma^{*}$ が帰納的言語であることと、$L$ と $\overline{L}$ がともに句構造言語であることは同値である。

句構造言語 の記事の定理「Turing 機械との同値性」により、句構造言語であることと帰納的可算言語であることは同値である。あとは thm-rl-post による。$\square$

個数

帰納的言語の個数

$\mathcal{R}(\Sigma)$ と $\mathcal{RE}(\Sigma)$ は可算無限集合である。したがって、帰納的可算でない言語(とくに帰納的でない言語)が存在する。

状態とテープ記号の名前を付け替えても、様相の列は名前を付け替えたものになるだけなので、受理・拒否・停止は変わらない。新しい記号 $\gamma_1,\gamma_2,\dots$ を固定する。各 $L\in\mathcal{RE}(\Sigma)$ について、$Q=\{0,1,\dots,p-1\}$($p\ge3$、$q_0=0$、$q_{\mathrm{acc}}=1$、$q_{\mathrm{rej}}=2$)、$\Gamma=\Sigma\cup\{\sqcup,\gamma_1,\dots,\gamma_g\}$($g\in\mathbb{N}$)の形の $k$ テープの機械 $M$ で $L(M)=L$ となるものがある。$(k,p,g)$ を固定すると、この形の機械は遷移関数 $\delta\colon Q\times\Gamma^{k}\to Q\times\Gamma^{k}\times\{\mathrm{L},\mathrm{R},\mathrm{N}\}^{k}$ で決まり、有限集合から有限集合への写像は有限個しかないので、有限個である。$(k,p,g)$ の選び方は可算個なので、この形の機械全体は高々可算であり、$M\mapsto L(M)$ はそこから $\mathcal{RE}(\Sigma)$ への全射である。よって $\mathcal{RE}(\Sigma)$ とその部分集合 $\mathcal{R}(\Sigma)$ は高々可算である。$\Sigma\ne\emptyset$ なので有限言語は無限個あり、それらはすべて帰納的言語である(ex-rl-examples)から、二つとも可算無限集合である。一方、$\Sigma$ 上の言語全体は非可算集合である(形式言語 の記事の命題「言語の個数」)から、$\mathcal{RE}(\Sigma)$ に属さない言語が存在する。$\square$

同じ議論が MSm24 Lemma 5.6.1、Lemma 5.6.2、Theorem 5.6.3(pp. 180–184)にある。この証明は帰納的でない言語を具体的には示さないが、ex-rl-nonexamples と cor-rl-atm-complement がその具体例を与える。

仮定を外したときの反例

外す条件反例成り立たなくなること
すべての入力で停止すること(prop-rl-complement の判定機)$A_{\mathrm{TM}}$ を受理する機械 $U$受理状態と拒否状態を入れ替えた機械が補集合を受理すること
補集合が帰納的可算であること(thm-rl-post の 2)$A_{\mathrm{TM}}$帰納的言語であること
状態の集合が有限であること(def-rl-machine)状態を無限個もつ「機械」判定できる言語が可算個しかないこと(prop-rl-countable)
反例の確かめ

1 行目:$U$ の受理状態と拒否状態を入れ替えた機械を $\overline{U}$ とすると、prf-rl-complement と同じ理由で $\overline{U}$ は $U$ と同じ様相の列をたどるので、$L(\overline{U})$ は $U$ が拒否する文字列全体であり、$\overline{A_{\mathrm{TM}}}$ に含まれる。もし $L(\overline{U})=\overline{A_{\mathrm{TM}}}$ なら $\overline{A_{\mathrm{TM}}}$ は帰納的可算になり、cor-rl-atm-complement に反する。したがって $\overline{U}$ は補集合を受理せず、$U$ が停止しない入力が $\overline{A_{\mathrm{TM}}}$ の中に存在する。
2 行目:$A_{\mathrm{TM}}$ は帰納的可算だが、補集合は帰納的可算でなく(cor-rl-atm-complement)、$A_{\mathrm{TM}}$ は帰納的でない(ex-rl-nonexamples)。
3 行目:$L\subset\Sigma^{*}$ を任意の言語とする。状態を $q_u$($u\in\Sigma^{*}$)と $q_{\mathrm{acc}},q_{\mathrm{rej}}$ とし、初期状態を $q_\varepsilon$、$\Gamma=\Sigma\cup\{\sqcup\}$、1 テープで、$\delta(q_u,a):=(q_{ua},a,\mathrm{R})$($a\in\Sigma$)、$\delta(q_u,\sqcup):=(q_{\mathrm{acc}},\sqcup,\mathrm{N})$($u\in L$)または $(q_{\mathrm{rej}},\sqcup,\mathrm{N})$($u\notin L$)とする。prf-rl-regular と同じ帰納法で、入力 $w=w_1\cdots w_n$ の $i$ ステップ後($i\le n$)の状態は $q_{w_1\cdots w_i}$、ヘッドは $i$ 番目にあり、$n+1$ ステップ目に $w\in L$ なら受理、$w\notin L$ なら拒否して停止する。よって状態を無限個許すと、非可算個あるすべての言語が「判定」できてしまう。prf-rl-countable は、有限集合の間の写像が有限個しかないことにこの条件を使っている。

3 行目の「機械」は、正規言語の判定機(thm-rl-regular)の状態集合を、決定性有限オートマトンの代わりに $\Sigma^{*}$ 全体を頂点とする無限の木にしたものである。状態が有限個であることが、機械を有限のデータで書けることを保証し、判定できる言語の範囲を限っている。

補足

階層における位置

Chomsky階層 の記事の定理「階層定理」により、二文字以上のアルファベットでは、文脈依存言語のクラスは帰納的言語のクラスに真に含まれ、帰納的言語のクラスは句構造言語(すなわち帰納的可算言語)のクラスに真に含まれる。文法との関係は、cor-rl-grammar のように、言語とその補集合の両方が句構造文法で生成できることとして言い表せる。

自然数の集合の決定可能性

停止問題 の記事は、自然数の部分集合について、特性関数が Turing 計算可能であることを決定可能、ある Turing 計算可能な部分関数の定義域であることを半決定可能と定めている。これらは帰納的言語・帰納的可算言語と同じ考え方の概念で、入力を文字列でなく自然数とし、答えを受理状態と拒否状態の代わりに関数の値で表したものである。停止集合が半決定可能だが決定可能でないことは、$A_{\mathrm{TM}}$ が帰納的可算だが帰納的でないこと(ex-rl-nonexamples)に対応する。

関連項目

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する