文脈依存言語

同義語:context-sensitive languageタイプ1言語

概要

文脈依存言語(context-sensitive language)とは、生成規則が「左右の文脈 $\gamma,\delta$ の中の一つの変数記号 $A$ を空でない記号列 $\alpha$ で置き換える」形 $\gamma A\delta\to\gamma\alpha\delta$ に限られた文脈依存文法によって生成される形式言語のことである(空語のため $S\to\varepsilon$ だけを例外的に許す)。規則が文字列を縮めないため、そのクラスは非収縮文法で生成される言語のクラスと一致し(Kuroda の定理)、入力長に比例した作業領域を持つ非決定性線形有界オートマトンで受理できる言語のクラスとも一致する。$\{a^{n}b^{n}c^{n}\}$ のような文脈自由でない言語を含み、所属問題は判定でき、補集合を含む基本演算で閉じている。Chomsky 階層のタイプ 1 である。

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

前提知識: 形式言語, 句構造言語, 文脈自由言語, 数学的帰納法

定義

文脈依存言語は、「一つの変数記号を、その左右の文脈が指定された記号列であるときに限って、空でない記号列へ書き換える」規則からなる文法で生成される形式言語である。以下、$\Sigma$ はアルファベット、$\Sigma^{*}$ はその上の文字列全体、$\varepsilon$ は空語を表す。

文脈依存文法

文脈依存文法(context-sensitive grammar; CSG。タイプ 1 の文法ともいう)とは、$4$ つ組 $G=(V,\Sigma,R,S)$ であって次を満たすものをいう。

  • $V$ は $\Sigma$ と交わらない空でない有限集合(変数記号、非終端記号の集合)
  • $S\in V$(開始記号)
  • $R$ は生成規則の有限集合であり、その各元は次のいずれかの形をしている。
    • $\gamma A\delta\to\gamma\alpha\delta$($\gamma,\delta\in(V\cup\Sigma)^{*}$、$A\in V$、$\alpha\in(V\cup\Sigma)^{*}$、$\alpha\ne\varepsilon$)
    • $S\to\varepsilon$。ただしこの規則を含む場合、$S$ はどの規則の右辺にも現れない。
      規則 $\gamma A\delta\to\gamma\alpha\delta$ は「左に $\gamma$、右に $\delta$ がある文脈の中の $A$ を $\alpha$ で置き換えてよい」ことを表し、$\gamma,\delta$ をその規則の文脈という。文脈依存文法は句構造言語 の記事の定義(句構造文法)の特別な場合であり、直接導出 $\Rightarrow_G$、導出 $\Rightarrow_G^{*}$、生成する言語 $L(G):=\{w\in\Sigma^{*}\mid S\Rightarrow_G^{*}w\}$ は同じ記事の定義(導出と生成される言語)のとおりに定める。すなわち $\gamma'\alpha'\delta'\Rightarrow_G\gamma'\beta'\delta'$($\alpha'\to\beta'\in R$)を有限回続けたものが導出である。
文脈依存言語

$\Sigma$ 上の言語 $L\subset\Sigma^{*}$ が文脈依存言語(context-sensitive language; CSL)であるとは、ある文脈依存文法 $G$ が存在して $L=L(G)$ となることをいう。

非収縮文法

非収縮文法(noncontracting grammar。単調文法(monotonic grammar)ともいう)とは、句構造文法 $G=(V,\Sigma,R,S)$ であって、各規則 $\alpha\to\beta\in R$ が $|\alpha|\le|\beta|$ を満たすもの(例外として $S\to\varepsilon$ を、$S$ がどの規則の右辺にも現れないときに限り許す)をいう。文脈依存文法は非収縮文法である(prop-context-sensitive-language-nondecreasing)。逆に非収縮文法が生成する言語はつねに文脈依存言語である(thm-context-sensitive-language-kuroda)。

空語の規約

規則 $S\to\varepsilon$ の例外は、空語を含む言語を扱うための規約である。この例外なしでは、規則がすべて長さを減らさないため $\varepsilon$ を生成できず、文脈自由言語のうち $\varepsilon$ を含むものが文脈依存言語でなくなってしまう。「$S$ が右辺に現れない」という条件は、$S\to\varepsilon$ を導出の途中で使って文字列を縮めることを禁じ、非減少性(prop-context-sensitive-language-nondecreasing)を実質的に保つためのものである。文献によっては、非収縮文法を文脈依存文法の定義として採用するもの(HU79 §9.3)や、$\varepsilon$ を最初から除外して $L\setminus\{\varepsilon\}$ だけを扱うものがある。

直感

文脈依存文法の規則 $\gamma A\delta\to\gamma\alpha\delta$ は、文脈自由文法の規則 $A\to\alpha$ に「左右の文脈が $\gamma,\delta$ のときだけ」という条件を付けたものである。文脈を空にとれば文脈自由文法の規則になるので、文脈依存文法は(空語規則の扱いを除いて)文脈自由文法を含む。文脈の条件により、「隣にある記号を見てから書き換える」という制御が可能になり、$\{a^{n}b^{n}c^{n}\}$ のように複数の部分の個数を同時に一致させる言語が生成できる(prop-context-sensitive-language-anbncn)。
もう一つの特徴は、規則が文字列を縮めないことである。このため、長さ $n$ の文字列の導出の途中に現れる文字列の長さはすべて $n$ 以下であり、有限個の候補を調べれば所属が判定できる(prop-context-sensitive-language-decidable)。機械の側では、これは作業領域が入力の長さに比例して制限されたTuring機械、すなわち線形有界オートマトンに対応する(thm-context-sensitive-language-lba)。

例

単一の文字列を生成する文法

$\Sigma=\{a\}$、$V=\{S\}$、$R=\{S\to a\}$ は、$\gamma=\delta=\varepsilon$、$A=S$、$\alpha=a$ の場合の規則一本からなる文脈依存文法であり、$L(G)=\{a\}$ である。任意の有限言語も同様に文脈依存言語である(空語を含むときは $S\to\varepsilon$ を加える)。

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

$\Sigma=\{a,b\}$、$V=\{S\}$、$R=\{S\to aSb,\ S\to ab\}$ は、文脈が空の規則だけからなる文脈依存文法であり、$L(G)=\{\,a^{n}b^{n}\mid n\ge1\,\}$ である(句構造言語 の記事の例)。空語も含めた $\{a^{n}b^{n}\mid n\in\mathbb{N}\}$ を生成するには、新しい開始記号 $S_0$ をとり $S_0\to S$、$S_0\to\varepsilon$ を加えればよい。文脈自由文法 $S\to aSb$、$S\to\varepsilon$ は $\varepsilon$ 規則を持つので文脈依存文法ではないが、生成言語は同じである。一般に文脈自由言語は文脈依存言語である(prop-context-sensitive-language-includes-cfl)。

三つの部分の個数が等しい文字列

$\Sigma=\{a,b,c\}$、$V=\{S,B,C\}$ とし、規則を
$$S\to aSBC,\quad S\to aBC,\quad CB\to BC,\quad aB\to ab,\quad bB\to bb,\quad bC\to bc,\quad cC\to cc$$
とする。この文法は非収縮文法であり、$L(G)=\{\,a^{n}b^{n}c^{n}\mid n\ge1\,\}$ である(prop-context-sensitive-language-anbncn)。規則 $CB\to BC$ は $2$ つの変数記号を入れ替えるもので、def-context-sensitive-language-grammar の「文脈の中の一つの変数記号を書き換える」形をしていないが、rem-context-sensitive-language-strict-anbncn のように文脈依存文法の形の規則に置き換えられる。$\{a^{n}b^{n}c^{n}\}$ は文脈自由言語ではない(文脈自由言語 の記事の命題)ので、文脈自由言語のクラスは文脈依存言語のクラスに真に含まれる。

文脈依存文法の形での書き換え

ex-context-sensitive-language-anbncn の規則 $CB\to BC$ を、新しい変数記号 $W,Z$ を用いた四つの規則
$$CB\to CZ,\qquad CZ\to WZ,\qquad WZ\to WC,\qquad WC\to BC$$
で置き換えると、各規則は文脈依存文法の形(それぞれ文脈 $(C,\varepsilon)$ の中の $B$、文脈 $(\varepsilon,Z)$ の中の $C$、文脈 $(W,\varepsilon)$ の中の $Z$、文脈 $(\varepsilon,C)$ の中の $W$ を一つの記号で置き換える)をしており、四つを続けて適用すると $CB\Rightarrow CZ\Rightarrow WZ\Rightarrow WC\Rightarrow BC$ となって $CB\to BC$ と同じ効果を持つ。$Z$ を消せる規則は $WZ\to WC$ だけ、$W$ を消せる規則は $WC\to BC$ だけであり、$W$ は $Z$ の直前の $C$ からしか生じないので、終端文字列に至る導出ではこの四つの規則は必ず同じ組の上でこの順に使われ、他の規則と交互に使われても効果は $CB\to BC$ に等しい。したがって得られる文脈依存文法は同じ言語 $\{a^{n}b^{n}c^{n}\mid n\ge1\}$ を生成する。任意の非収縮文法についてこの種の書き換えが可能であることが thm-context-sensitive-language-kuroda の内容である。

同じ文字列の繰り返し

$\Sigma=\{a,b\}$ 上の言語 $\{\,ww\mid w\in\Sigma^{*}\,\}$ は文脈依存言語である。文脈自由言語ではない(文脈自由言語 の記事の注意)。文法は、$w$ の各記号をコピーしてマーカーで右端まで運ぶ規則の組で作れるが、線形有界オートマトンで受理できること(前半と後半を一記号ずつ照合する)を見るほうが容易であり、thm-context-sensitive-language-lba により文脈依存言語であることが従う。同様に $\{a^{n}b^{m}c^{n}d^{m}\}$、$\{a^{2^{n}}\}$、素数個の $a$ からなる文字列全体なども文脈依存言語である(HU79 第 9 章)。

反例:文字列を縮める規則

$\Sigma=\{a,b\}$、$V=\{S,A\}$、$R=\{S\to aAb,\ A\to\varepsilon\}$ は句構造文法であり $S\Rightarrow aAb\Rightarrow ab$ により $L(G)=\{ab\}$ を生成するが、規則 $A\to\varepsilon$ は開始記号でない変数記号を空語に書き換えるので、文脈依存文法の規則の形をしていない。これは「文法が文脈依存文法である」という性質を満たさない例であって、「言語 $\{ab\}$ が文脈依存言語である」ことを否定する例ではない($S\to ab$ の一本で生成できる)。文法の形と、それが生成する言語のクラスは区別しなければならない。同様に、$\varepsilon$ 規則を持つ文脈自由文法は文脈依存文法ではないが、生成言語はつねに文脈依存言語である(prop-context-sensitive-language-includes-cfl)。

反例:文脈依存でない言語

所属問題が判定できる言語(帰納的言語)であって文脈依存でないものが存在する。証明は対角線論法による。文脈依存文法を有限のアルファベット上の文字列として符号化し、文字列 $w_i$ と文法の符号を並べて、$L:=\{\,w_i\mid w_i\notin L(G_i)\,\}$($G_i$ は $w_i$ が符号化する文脈依存文法)とおくと、prop-context-sensitive-language-decidable により $L$ の所属は判定できるが、$L$ はどの $L(G_i)$ とも異なる(HU79 §9.3)。この言語は「帰納的言語である」という性質を満たすが、「文脈依存言語である」という性質を満たさない。したがって文脈依存言語のクラスは帰納的言語のクラスに、さらに句構造言語のクラスに真に含まれる。

性質

規則の非減少性

文脈依存文法(より一般に非収縮文法)$G$ の $S\to\varepsilon$ 以外の各規則 $\alpha\to\beta$ について $|\alpha|\le|\beta|$ が成り立つ。したがって、$S\to\varepsilon$ を使わない導出 $\eta_0\Rightarrow\eta_1\Rightarrow\cdots\Rightarrow\eta_n$ において $|\eta_0|\le|\eta_1|\le\cdots\le|\eta_n|$ である。さらに、$w\ne\varepsilon$ の導出 $S\Rightarrow^{*}w$ は $S\to\varepsilon$ を使わない。

規則 $\gamma A\delta\to\gamma\alpha\delta$ について、$|\gamma A\delta|=|\gamma|+1+|\delta|$、$|\gamma\alpha\delta|=|\gamma|+|\alpha|+|\delta|$ であり、$\alpha\ne\varepsilon$ より $|\alpha|\ge1$ なので $|\gamma A\delta|\le|\gamma\alpha\delta|$ である。非収縮文法では定義そのものである。一歩 $\gamma'\alpha\delta'\Rightarrow\gamma'\beta\delta'$ で長さは $|\beta|-|\alpha|\ge0$ だけ変わるので、長さの列は単調非減少である。最後に、$S\to\varepsilon$ を含む文法では $S$ は右辺に現れないので、$S$ が現れる文字列は導出の最初の $S$ だけである。$S\to\varepsilon$ をこれに適用すると $\varepsilon$ になり、$\varepsilon$ からは何も導出できない。よって $w\ne\varepsilon$ の導出では $S\to\varepsilon$ は使われない。

三つの部分の個数が等しい文字列の文法

ex-context-sensitive-language-anbncn の文法 $G$ について $L(G)=\{\,a^{n}b^{n}c^{n}\mid n\ge1\,\}$ が成り立つ。

($\supset$)$n\ge1$ とする。$S\to aSBC$ を $n-1$ 回、$S\to aBC$ を $1$ 回適用して $S\Rightarrow^{*}a^{n}(BC)^{n}$ を得る。$CB\to BC$ を繰り返して、$C$ の右にある $B$ を順に左へ移せば $a^{n}B^{n}C^{n}$ になる($C$ の右にある $B$ の個数の和は各適用で $1$ 減るので有限回で終わる)。次に $aB\to ab$ を $1$ 回、$bB\to bb$ を $n-1$ 回適用して $a^{n}b^{n}C^{n}$、$bC\to bc$ を $1$ 回、$cC\to cc$ を $n-1$ 回適用して $a^{n}b^{n}c^{n}$ を得る(句構造言語 の記事の命題(導出の文脈への代入合致性)により、部分文字列の書き換えは全体の中で実行できる)。
($\subset$)$S$ から導出されるすべての文字列 $\theta$ について、次の三つが成り立つことを導出の長さに関する帰納法で示す。記号 $x$ の $\theta$ における出現回数を $\#_x(\theta)$ と書く。

  1. $\#_a(\theta)=\#_B(\theta)+\#_b(\theta)=\#_C(\theta)+\#_c(\theta)$。
  2. $\theta=a^{k}\mu$ または $\theta=a^{k}S\mu$($k\in\mathbb{N}$、$\mu\in\{B,C,b,c\}^{*}$)の形をしている。すなわち $a$ はすべて左端にあり、$S$ があればその直後に、$S$ がなければ $a$ の直後に $\{B,C,b,c\}$ 上の文字列が続く。
  3. 2 の $\mu$ は $\mu=\nu\rho$、$\nu\in\{b,c\}^{*}$、$\rho\in\{B,C\}^{*}$ と書け、$\nu\in b^{*}c^{*}$ である。さらに $S$ が現れるときは $\nu=\varepsilon$ である。
    $\theta=S$ ではすべて成り立つ($k=0$、$\mu=\varepsilon$)。各規則の適用がこれらを保つことを確かめる。$S\to aSBC$、$S\to aBC$:1 について $a,B,C$ が一つずつ増える。2 について、$S$ は $a^{k}$ の直後にあるので、適用後は $a^{k+1}SBC\mu$ または $a^{k+1}BC\mu$ の形になる。3 について、適用前に $S$ があるので $\nu=\varepsilon$、すなわち $\mu=\rho\in\{B,C\}^{*}$ であり、適用後の $\mu'=BC\rho$ も $\{B,C\}^{*}$ の元で、$S$ が残るなら $\nu'=\varepsilon$ のままである。$CB\to BC$:1 は変わらず、$\mu$ の中の $\rho$ の内部の書き換えなので 2、3 も保たれる($\nu$ には $C,B$ が含まれないので、左辺 $CB$ の出現は $\rho$ の中にある)。$aB\to ab$:左辺の $a$ は $a^{k}$ の最後の $a$ であり、その直後が $B$ であることから $S$ はなく $\mu=B\rho'$、$\nu=\varepsilon$ である。適用後は $\nu'=b\in b^{*}c^{*}$、$\rho'$ はそのままで、1 も $B$ が一つ減り $b$ が一つ増えるだけで保たれる。$bB\to bb$:$b$ の直後の $B$ は $\rho$ の先頭であり、$\nu$ の末尾が $b$ なので $\nu\in b^{*}$ であり、$\nu'=\nu b\in b^{*}$。$bC\to bc$:同様に $\nu\in b^{*}$ で $\nu'=\nu c\in b^{*}c^{*}$。$cC\to cc$:$\nu$ の末尾が $c$ なので $\nu\in b^{*}c^{+}$ で $\nu'=\nu c\in b^{*}c^{*}$。1 はいずれも大文字が一つ減り対応する小文字が一つ増えるだけで保たれる。
    終端文字列 $w\in L(G)$ では $S$ も $B,C$ も現れないので、2、3 により $w=a^{k}\nu$、$\nu\in b^{*}c^{*}$、すなわち $w=a^{k}b^{i}c^{j}$ であり、1 により $k=i=j$ である。また $S$ を消すには $S\to aBC$ を使う必要があるので $k\ge1$ である。よって $w\in\{a^{n}b^{n}c^{n}\mid n\ge1\}$。
文脈自由言語は文脈依存言語である

任意の文脈自由言語は文脈依存言語である。逆は成り立たない。

$L$ を文脈自由言語とする。文脈自由言語 の記事の命題(空語規則の除去)により、$L=L(G')$ となる文脈自由文法 $G'=(V,\Sigma,R',S')$ で、$\varepsilon$ 規則が高々 $S'\to\varepsilon$ だけであり、それがあるのは $\varepsilon\in L$ のときに限り、$S'$ がどの規則の右辺にも現れないものがとれる。$R'$ の $S'\to\varepsilon$ 以外の各規則 $A\to\alpha$ は $\alpha\ne\varepsilon$ を満たすので、$\gamma=\delta=\varepsilon$ とおいた文脈依存文法の規則 $\gamma A\delta\to\gamma\alpha\delta$ である。$S'\to\varepsilon$ があれば、それは文脈依存文法の空語の規約をちょうど満たす。よって $G'$ はそのまま文脈依存文法であり、導出と生成言語の定義は同じであるから $L=L(G')$ は文脈依存言語である。逆が成り立たないことは ex-context-sensitive-language-anbncn と prop-context-sensitive-language-anbncn による。

Kuroda の定理

言語 $L$ について次は同値である。

  1. $L$ は文脈依存言語である。
  2. $L$ は非収縮文法で生成される。
  3. $L$ は、$S\to\varepsilon$ の例外を除き規則が $A\to BC$、$AB\to CD$、$A\to a$ の形($A,B,C,D$ は変数記号、$a$ は終端記号)に限られた文法(Kuroda 標準形。$A\to B$ の形の規則を含める流儀もある)で生成される。
Kuroda の定理の証明の所在
  1. から (2) は prop-context-sensitive-language-nondecreasing による。(2) から (3) は、終端記号を変数記号に分離し(句構造言語 の記事の命題(分離形への変形)と同様)、長い規則を長さ $2$ の規則の列に分解することで示され、(3) から (1) は規則 $AB\to CD$ を rem-context-sensitive-language-strict-anbncn と同じ要領で文脈依存文法の形の四つの規則に置き換えることで示される。証明は S.-Y. Kuroda(Kur64)、教科書では HU79 §9.3 の演習、Igr11 第 5 章を参照。
所属問題の決定可能性

文脈依存文法 $G=(V,\Sigma,R,S)$ と文字列 $w\in\Sigma^{*}$ が与えられたとき、$w\in L(G)$ かどうかは有限の手続きで判定できる。すなわち、文脈依存言語は帰納的言語(所属問題が判定できる言語)である。

$w=\varepsilon$ の場合:prop-context-sensitive-language-nondecreasing により、$S\to\varepsilon$ 以外の規則は長さを減らさないので、$\varepsilon$ に至る導出は最初の $S$ に直接 $S\to\varepsilon$ を適用するものに限る($S$ が長さ $2$ 以上の文字列の一部になった後は、$S\to\varepsilon$ を適用しても長さ $1$ 以上の文字列が残り、以後長さは減らない。また $S$ は右辺に現れないので、$S$ 以外の長さ $1$ の文字列から $S$ に戻ることもない)。よって $\varepsilon\in L(G)$ であることは $S\to\varepsilon\in R$ と同値であり、有限の検査で判定できる。
$w\ne\varepsilon$ の場合:$n:=|w|$ とおく。同じ命題により、$S\Rightarrow^{*}w$ の導出は $S\to\varepsilon$ を使わず、途中に現れる文字列の長さはすべて $n$ 以下である。$V\cup\Sigma$ 上の長さ $n$ 以下の文字列全体 $\Gamma_n$ は有限集合であり、$\eta,\theta\in\Gamma_n$ について $\eta\Rightarrow\theta$ かどうかは、$\eta$ の各部分文字列と $R$ の各規則の左辺を比べればよいので有限の手続きで決まる。したがって $\Gamma_n$ を頂点、$\Rightarrow$ を辺とする有限の有向グラフが構成でき、$w\in L(G)$ は「このグラフで $S$ から $w$ に到達できる」ことと同値である。有限グラフの到達可能性は、$S$ から到達できる頂点の集合を辺をたどって順に拡げていく(既に加えた頂点は再訪しない)ことで有限回で計算できる。

決定可能性の意味

prf-context-sensitive-language-decidable は、すべての導出が有限で終わると主張しているのではない。規則 $A\to A$ のような循環があれば無限に続く導出が存在する。主張は、所属を判定するための探索が有限の範囲で済むということである。この探索に必要な記憶量は $|\Gamma_n|$ に比例し、$n$ について指数的であるが、非決定的に導出を一本だけ推測して照合するなら記憶量は $n$ に比例する。これが線形有界オートマトンとの対応(thm-context-sensitive-language-lba)の直感的な内容である。

線形有界オートマトンとの同値性

言語 $L$ が文脈依存言語であることと、$L$ を受理する非決定性線形有界オートマトン(入力の長さに比例した長さのテープしか使えない非決定性 Turing 機械)が存在することは同値である。

線形有界オートマトンとの同値性の証明の所在

線形有界オートマトンの定義と証明は HU79 §9.3(Theorems 9.5、9.6)、Igr11 第 5 章を参照。線形有界オートマトンが受理する言語が文脈依存であることは P. S. Landweber(1963)、逆向きを含む同値は Kuroda(Kur64)による。決定性の線形有界オートマトンで同じクラスが受理できるかどうか(LBA 問題)は未解決である。

閉包性

文脈依存言語のクラスは、和集合、連接、Kleene 閉包、共通部分、鏡像、および補集合について閉じている。

閉包性の証明の所在

和集合・連接・Kleene 閉包・鏡像については、Kuroda 標準形などで終端記号を分離した文法をとり、文脈自由言語 の記事の命題(閉包性)と同様の構成をする(規則の左辺が複数の記号からなるため、二つの文法の変数記号を互いに素にし、境界をまたいで規則が適用されないように分離形にする必要がある。HU79 第 11 章)。共通部分については線形有界オートマトンの積構成による(HU79 §9.3)。補集合について閉じていること(Immerman–Szelepcsényi の定理)は長く未解決であったが、N. Immerman と R. Szelepcsényi が 1987 年に独立に、非決定性の空間計算量クラスが補集合で閉じることを示して解決した(Imm88、Sze88)。

補足

階層における位置

文脈依存言語は Chomsky階層(表は 形式言語 の記事の補足)のタイプ 1 に位置する。文脈自由言語を真に含み(prop-context-sensitive-language-includes-cfl)、帰納的言語(所属問題が判定できる言語)に真に含まれ(prop-context-sensitive-language-decidable と rem-context-sensitive-language-nonexample-recursive)、したがって句構造言語に真に含まれる(句構造言語 の記事の命題)。
$$\text{正規言語}\subsetneq\text{文脈自由言語}\subsetneq\text{文脈依存言語}\subsetneq\text{帰納的言語}\subsetneq\text{句構造言語}$$

歴史

文脈依存文法は N. Chomsky(Cho59)が階層のタイプ 1 として導入した。文脈の形の規則と非収縮規則の同値、および線形有界オートマトンとの対応は Kuroda(Kur64)による。補集合に関する閉包性は 1987 年まで未解決であった(Imm88、Sze88)。標準的な教科書として HU79 第 9 章、Igr11 第 5 章を挙げる。HMU06 と Sip12 は文脈依存言語をほとんど扱わない。

関連項目

参考文献

[1]
John E. Hopcroft, Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 1979, §9.3 Context-Sensitive Languages(線形有界オートマトンとの同値、帰納的言語との分離)、Chapter 11 Closure Properties of Families of Languages

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