2015-A 形式言語理論
教員: 入力: 高橋光輝
September 25, 2017
1
本講義の資料 (教科書およびハンドアウト)は理学部ホームページの「蓮尾一郎」→「TEACHING」→「形式言語」から入手できる。
Intrduction
オートマトンとは Automaticという単語は、automaton(複数形は automata)から生まれた単語である。
オートマトンは
� ノードとエッジを持ち、(グラフと一緒)
� エッジ: 文字でラベル付けされる
� 丸と二重丸の区別がある
� 文字列(aaa, ab, a100b100, · · ·
)を受理したり、しなかったりする (単純な)機械
� 最後に行き着く状態 (state/node)が二重丸ならば受理される
� (枝分かれによって、「うまく選んで二重丸に辿り着ける」)
定義 スクリプトM がオートマトンであるとき、
L (M) :={M が acceptする文字列全体
}Q. Is there L ⊆ Σ∗s.t. L ̸= L (M), ∀M : オートマトン
ただし Σ∗ は文字列全体である。
言い換えると、Is any L represented by some automaton M?
A. No if restrict to �nite automaton.
A2. Yes if we allow in�nitely many states. For example, 文字列 wと状態 q が 1対1対応するようなオートマトンに対して、w ∈ Lな状態を二重丸と定義する。
2
オートマトンの先 FA(�nite autom)→ PDA(pushdown autom)→ TM(turing ma-chine)
という順に計算能力が上がるが、チューリングマシン以上の計算能力は存在しない。実際に研究で扱う際にはチューリングマシン相当の計算能力だけでなく、オートマトン相当の計算能力もしばしば研究対象として用いられる。
なぜオートマトンなのか?→そこまでパワフルではなく、オートマトン上の諸問題の多くは decidable(アルゴリズムで解ける)だから。
例: 定理 入力されたオートマトンM1,M2 に対して、L (M1) ⊆ L (M2)を判定するアルゴリズムが存在する。L (M1)および L (M2)は無限集合だが、M1,M2 は有限なので、そちらを操作して判定することが可能である。
これは PDAおよび TMでは不可能である。ここから、システム検証への応用が可能とされる。例えば、M1をネットワークプロトコル、M2を安全性仕様とすると、ネットワークプロトコルが安全に運用可能かを判定することができる。
Chapter 1
(素朴)集合論の記法
Def1.1 |x|: xの言の個数
例|Σ∗| = +∞(if Σ ̸= ⊘)
Def1.2 f が単射 (injective)であるとは、
f : X → Ydef.⇔ (x ̸= x′ ⇒ f (x) ̸= f (x′))
⇔ (f (x) = f (x′)⇒ x = x′)
f が全射 (surjective)であるとは、
def.⇔ ∀y ∈ Y, ∃x ∈ X, f (x) = y
f が全単射 (bijection)であるとは、
def.⇔ f が全射かつ単射
Def.1.4. f : X (∋ x)→ Y, V ⊆ X について、
f (V ) := {f (x) |x ∈ V } ⊆ Y
3
CHAPTER 1. (素朴)集合論の記法 4
を �V の f による像�と呼ぶ。
W ⊆ Y について、f−1 (W ) := {x ∈ X|f (x) ∈W} ⊆ X
を �W の f による逆像�と呼ぶ。
Prop.1.1. f : X → Y, V ⊆ X,W ⊆ Y について、
1. f(f−1 (W )
)⊆W
証明例 1
f(f−1 (x)
)={f (x) |x ∈ f−1 (W )
}= {f (x) |f (x) ∈W}= {y ∈W |∃x.y = f (x)}⊂W
証明例 2 y ∈ f(f−1 (W )
)とする。(Aim. y ∈W )
f(f−1 (W )
)の def.より、ある x ∈ f−1 (W )に対して y = f (x)、また f−1 (x)
の定義より f (x) ∈W。以上より y ∈W
2. f : surjection⇒ f(f−1 (W )
)= W
3. V ⊆ f−1 (f (V ))
4. f : injective⇒ V = f−1 (f (V ))
Thm.1.1
2X = p (X) = {v ⊆ X}={X の部分集合全体
}例 Σ = {a, b}のとき、
p (Σ) = 2Σ = {{} , {a} , {b} , {a, b}}
CHAPTER 1. (素朴)集合論の記法 5
第 2回
有限と無限のせめぎあい コンピューターが扱うものは基本的に「無限」のものである。振る舞いが停止する場合を考えるときを可能無限、振る舞いが停止しない場合を考えるときを実無限と呼ぶ。
参考文献: 野矢茂樹『無限論の教室』
しかし、実際に人間が扱う際には有限のものであるため、コンピューターの振る舞いを記述するプログラムは有限の長さでなければならない。このように、有限の記述で無限の振る舞いを規定できるのが、一種の形式言語理論の面白さである。
そこで前回は L ≤ Σ∗ で ∀M : 有限オートマトン L ̸= L (M)なるものは存在するか?という問いを設けた。これに対する回答は Yesである。
Σ = {a, b}L = {anbn|n ∈ N} (∋ ε, ab, aabb, aaabbb, · · · )
Def1.5
X ∪ Y = {z|z ∈ Xorz ∈ Y }X ∩ Y = {z|z ∈ Xandz ∈ Y }X − Y = {z|z ∈ Xandz /∈ Y }
Def1.7 X1, · · · , Xn を集合として、
X1 × · · · ×X = {(x1, · · · , xn) |xi ∈ Xi}
このような集合を (Kartesian) product集合と呼ぶ。ただし (· · · )は順序対 (orderedtuple)である。
Def1.8 X を集合、Y ⊆ X として、
χY :x→ {0, 1}
x 7→
{1 (x ∈ Y )
0 (x /∈ Y )
CHAPTER 1. (素朴)集合論の記法 6
Def1.9 X1, · · · , Xnを集合として、X1, · · · , Xn上の n項関係 (n-ary relation)とは、
R ⊆ X1 ×X2 × · · · ×Xn
のことである。例えばX = {BO, IH,KM}として、R ⊆ X ×X となる集合、例えば、
R = {(BO,KM) , (IH,BO) , (IH,KM) , (KM,BO)}
のような集合を考えると、これは X 内の要素どうしの関係を表現していることが分かる。則ち、「xと yの間に Rの関係がある」とは、
(x, y) ∈ R (⊆ X × Y )
である。
Def1.10 R ⊆ X × Y なる二項関係を考える。このとき、R が部分関数 (partialfunction)であるとは、
∀x ((x, y) ∈ R ∧ (x, y′) ∈ R⇒ y = y′)
である。また、Rが関数 (function)であるとは、
� Rが部分関数であり、
� ∀x.∃y. (x, y) ∈ R
である。
Def1.11 R ⊆ X ×X なる二項関係を考える。
1. Rが反射的 (re�exible)であるとは、
∀x ∈ X, (x, x) ∈ R
である。
2. Rが推移的 (transitive)であるとは、
(x, y) ∈ R, (y, z) ∈ R⇒ (x, z) ∈ R
である。
3. Rが対照的 (symmetric)であるとは、
(x, y) ∈ R⇒ (y, x) ∈ R
である。
CHAPTER 1. (素朴)集合論の記法 7
Def R ⊆ X ×X なる二項関係を考える。Rの反射的推移閉包 (re�exible and tran-sitive closure)R∗ を次のように定義する。
(x, x) ∈ R∗,(x, y) ∈ R∗| (y, z) ∈ R∗
(x, z) ∈ R∗ ,(x, y) ∈ R
(x, y) ∈ R∗
Lem. (x, y) ∈ R∗ であるとき、
∃n ∈ N, ∃x0, x1, · · · , xn ∈ X,x = x0Rx1R · · ·Rxn = y
ただし R∗ は Rの 0回以上の繰り返しで sる。教科書では、R+(Rの 1回以上の繰り返し)を Rの transitive closureであるとしている。
1.1 記号列、アルファベット、言語
Def1.12 文字 aおよび文字の集合 Σとし、
a ∈ Σ
とする。
Def1.13 Σ上の word(string)とは、
a1a2 · · · an (n ∈ N, ai ∈ N)
である。length 0の wordを ε(empty word)と書く。また、|x|を word xの長さとする。(e.g. |ε| = 0)
余談であるが、無限 word(a0a1a2 · · · (ai ∈ Σ))をオートマトンで受理することを考えるとき、オートマトンの二重丸を無限回踏めば acceptとする、Bü chi acceptanceconditionというオートマトンも今後登場する。
Def1.14 x = x1x1 · · ·xm, y = y1y2 · · · ynなるwordsを考える。このとき、xと yの連結 (concatenation)x · yを、
x · y = x1x2 · · ·xmy1y2 · · · yn
とする。
また、xk =
k 回︷ ︸︸ ︷x · x · · · · · xである。
CHAPTER 1. (素朴)集合論の記法 8
Def1.15 pre�x, su�x, subword, subsequence: (省略)
例えば、AAAAAの subwordは 6個、ABCDEの subwordはそれ以上存在する。
Def1.17Σ∗ =
∪n∈N
Σn = Σ0 ∪ Σ1 ∪ Σ2 ∪ · · · = {words over Σ}
という。
Σ+ = Σ∗\ {ε}= {words over Σ of length ≥ 1}
Def1.18 xR: reversed
Def1.19 Σ上の言語 (language)とは、L ⊆ Σ∗ のことである。e.g.
L = ⊘L = Σ∗
Def1.20 L1, L2 ⊆ Σ∗ なる languagesを考える。
L1 · L2 := {x1 · x2|x1 ∈ L1, x2 ∈ L2}
Q 言語の積について、単位元および零元は何となるか?
A 単位元: L = {ε}零元: L = ⊘
Def1.21
L∗ =∪n∈N
Ln =∪n∈N
L · · · · · L︸ ︷︷ ︸n 回
= {x1x2 · · ·xn|n ∈ N, xi ∈ L}
L+ =∪n≥1
Ln
Chapter 2
有限オートマトンと正則言語
2.1 序章
省略
2.2 有限オートマトンの定義
Def2.1 非決定性有限オートマトン (nondeterministic �nite automaton: NFA)とは、
M = (Q,Σ, δ, q0, F )
によって与えられる。このとき、Q は有限の状態集合、Σ はアルファベット、δ はδ ⊆ Q×Σ×Qなる集合で遷移関係と呼び、q0は q0 ∈ Qなる元で initial state、F はF ⊆ Qなる集合で �nite stateである。
(q, a, q′) ∈ δ は、状態 q が a で状態 q′ に遷移することを表し、δ が関数である時(Q×Σ→ Q)、M を決定的有限オートマトン (deterministic �nite automaton: DFA)と呼ぶ。
Def2.2 M = (Q,Σ, δ, q0, F )なるオートマトンを考える。
M 上の computation(run)とは、
q0a1−→ q1
a2−→ · · · an−−→ qn
であって、
9
CHAPTER 2. 有限オートマトンと正則言語 10
� q0 は initial
� (qi, ai+1, qi+1) ∈ δ (i ∈ [0, n− 1])
なるものをいう。
この computationが acceptingであるとは、
qn ∈ F
である。
worda1a2 · · · an がM に acceptedであるとは、a1a2 · · · an 上のM の accepting com-putationがあることである。
Def M を NFAとする。このとき、
L (M) :={x ∈ Σ∗|M は xを accept
}⊆ Σ∗
を「M は L (M)を認識 (recognize)する」という。
第 3回
M : an NFA / a DFA
M = (Q,Σ, δ (⊆ Q× Σ×Q) , q0 (⊆ Q) , F )
L (M) :={x ∈ Σ∗
(=∪
n≥0 Σn)|x is accepted(⇔ ∃accepting computation) by M
}The language recognized by M (accepted/受理するとも言うが、本講義では使用しない)
Def. L ⊆ Σ∗: Language, M : NFA
M recognizes L ⇔ L (M) = L ⇔ ∀x ∈ Σ∗(x ∈ L ⇔ x is accepted by M)
※ x ∈ L ⇒ x is accepted by M ではない
教科書図 2.3は、
L (M) ={x|xの中に 0が偶数個、1が偶数個含まれる
}のオートマトンである。
CHAPTER 2. 有限オートマトンと正則言語 11
注意L :=
{02n12n|n ∈ N
}then ∀x ∈ Σ∗(x ∈ L⇒ x ∈ L (M), 逆は成り立たない)
(p.14 下)
Def2.4M = (Q, sig, δ, q0F )
δを次のようにδ∗ : Q× Σ∗ → Q
に拡張する。
δ∗ (q, ε (∈ Σ∗)) :=
δ∗ (q, xa) := δ (δ (q, x) , a)
(x ∈ Σ∗, a ∈ Σ)
Σ∗ の構成に関する帰納法 (induction)
Σ∗ ≃ {ε}+Σ∗ × Σ
Proposition 2.1 M = (Q,Σ, δ, q0, F ): DFA
TFAE(The Following Are Equivalent)
1. x is accepted by M
2. δ∗ (q0, x) ∈ F
例 2.3 M2 s.t. (Σ = {0, 1})
L (M2) ={x|xを 2進数と見たとき 3の倍数
}練 2.1.4
L00 ={x|xは 00を su�xに持つ
}例 2.7.2 L00 を recofnizeする NFAは?
CHAPTER 2. 有限オートマトンと正則言語 12
Prop 2.3 M : NFA
M ′: M(の initial state)から unreachableな staeを除いた NFA
thenL (M) = L (M ′)
2.3 Equivalance between NFAs & DFAs
Thm 2.1 任意の lang L ⊆ Σ∗ について次は同値
1. ∃M : NFA.L = L (M)
2. ∃M : DFA.L = L (M)
注 Nondet. Bü chiautom. ≠ det. Bü chiautom
Proof 2.→ 1.は明らか (DFAは NFA)
1.→ 2.を証明する。
L = L (M)、M は NFAと仮定する。このとき、
DFA :M̃ =(Q̃,Σ, δ̃, q̃0, F̃
)を次のように定義する。
Q̃ := {S|S ⊆ Q}δ̃ :=Q̃× Σ→ Q̃
(S, a) 7→ {q′|∃q ∈ S1, (q, a, q′) ∈ δ}
q̃0 := {q0}(一点集合: singleton
)F̃ := {S ⊆ Q|S ∩ F ̸= ⊘}
特にM 7→ M̃ を powerset constructionという。
Def 言語 L ⊆ Σ∗ のとき、�L is regular� ⇔ (def) ∃M : NFA.L = L (M) ⇔ (Thm2.1) ∃M : DFA.L = L (M)
CHAPTER 2. 有限オートマトンと正則言語 13
2.4 ε-NFA
� NFA + ε-transition
� これは教科書のあとのほうで使用する (reg.exp. 7→ DFA)
Def. An ε-NFA isM = (Q,Σ, δ, q0, F )
のδ ⊆ Q× (Σ× {ε})×Q
(in NFA, δ ⊆ Q× Σ×Q)であるもののことである。
Def. A computation of ε-NFA M over a1, a2, · · · , an ∈ Σ∗is
q0ε−→ · · · ε−→ · a1−→ q1
ε−→ · · · ε−→ · a2−→ q2ε−→ · · · an−−→ qn
ε−→ · · · ε−→ q′n
Def. x is accepted ⇔ (def) ∃ accepting computation
Thm 2.2 L ⊆ Σ∗ TFTE
1. ∃M : ε-NFA, L = L (M)
2. ∃M : DFA, L = L (M)
By the powerset construction,
q̃0 :={q′|q ε−→ · · · ε−→ q′
}δ̃ (S, a) =
{q′|∃q ∈ S, q
a−→ · ε−→ · · · ε−→ q′}
例 (図省略)
L (M) = {0n11n22n3 |n1, n2, n3 ∈ N}
2.5 Pumping Lemma(反復補題)
Intro L: regular ⇔ (def) ∃M : DFA, L = L (M)
CHAPTER 2. 有限オートマトンと正則言語 14
Thm 2.3 (Pumping Lemma) L ⊆ Σ∗ を regularと仮定すると、
∃N ≧ 1.∀x ∈ L (|x| ≥ N ⇒ ∃u, v, w ∈ Σ∗ (x = uvw ∧ 1 ≤ |v| ≤ N ∧ ∀m ∈ N.uvmw ∈ L))
Proof L: regularより、∃M.DFA s.t. L = L (M)
N :=(M の状態数
)
第 4回
自主休講
第 5回
Quiz Input: M1,M2: NFA
Answer: L (M1) = L (M2)かどうか判定
Algolithm L (M1) ⊆ L (M2)は checkできる。L (M2) ⊆ L (M1)も check可能。
次回レポート 練習問題 2.9: オートマトンの最小化アルゴリズムを実際に実行して理解を深めてみること。
Prop.2.6 とりあえず skip
2.6 正則表現
2.7 有限オートマトンと正則表現
RegExpΣ→ (変換)→ ε-NFA
(Σ ∋) s, t := ⊘ |a (∈ Σ)| s+ t |st| sk, L (s) ⊆ Σ∗
CHAPTER 2. 有限オートマトンと正則言語 15
Thm.2.7 任意の RegExpSに対して、L (s) = L (Ms)となるような、(|F | = 1かつ受理状態からの遷移が存在しない)ε-NFAMs が構成できる (=存在*構成方法 (計算方法))。
Proof. s ∈ RegExpΣの構成に関する帰納法。
Base Case 1 s = ⊘のとき (L (s) = L (⊘) = ⊘)、(図省略)
Base Case 2 s = a ∈ Σのとき、
L (s) = {a} (⊆ Σ∗)
(図省略)
Step Case 1 s = t+ uのとき、
L (s) = L (t) ∪ L (u)
帰納法の仮定より、L (Mt) = L (t) , L (Mu) = L (u)
となる ε-NFAMt,Mu の構成が済んでいるとする。このとき、(図省略)
Step Case 2 s = t · uのとき、同様にMt,Mu をとると、(図省略)
Step Case 3 s = t∗ のとき、(図省略)
Thm M : DFA
とすると、tM ∈ RegExpΣが存在して、L (tM ) = L (M)となる。しかも構成できる。
Proof.M = (Q,Σ, δ, q0, F )
とする。またQ = {q1, q2, · · · , qn}
とする。
CHAPTER 2. 有限オートマトンと正則言語 16
アイデア
tij ∈ RegExpΣ(i, j ∈ [1, n]) s.t.L (tij) ={x ∈ Σ∗|qi
x−→ qj
}となる tij を作ると、
tM =∑
js.t.tj∈F
t1j
アイデア 2
tkijs.t.L(tkij)={x ∈ Σ∗|qi
x−→ qj
}ただし中間の状態は q1, q2, · · · , qk のみ各 i, j ∈ [1, n] , k ∈ [0, n]に対して、tkij を次のように定義する。
t0ij =
∑
as.t.qia−→qj
a i ̸= j∑as.t.qi
a−→qja+⊘∗ i = j
tk+1ij = tki(k+1)
(tk(k+1)(k+1)
)∗tk(k+1)j + tkij
tij := tnij とすると、
L (tij) ={x ∈ Σ∗|qi
x−→ qj
}tM :=
∑js.t.qj∈F
tij
とすればよい。
2.8 Reg.Lang.の性質
Thm.2.8 (reg.lang.の closure property) L1, L2: reg のとき、次も regularである。
1. L1 ∪ L2
L1 = L (s) , L2 = L (t)なる reg.exp.s, tがあって、このとき
L (s+ t) = L (s) ∪ L (t)
= L1 ∪ L2
CHAPTER 2. 有限オートマトンと正則言語 17
Corollary 勝手な s ∈ RegExpΣについて、
L (s) ⊆ Σ∗
は regularである。
Quiz I: 無限集合のとき、正則言語 Li から生成される∪
i∈I Li は正則ではない。
例: Li ={0i1i
}2. L1 ∩ L2
3. Σ∗\L1(補集合: complement)
Proof. L1 = L (M)となる DFAをとる。
M = (Q,Σ, δ, q0, F )
に対してM = (Q,Σ, δ, q0, Q\F )
とすると、L(M)= Σ∗\L (M)
よって Σ∗\L1 も reg.
注 (重要) NFAで丸と二重丸を反転しても、recognized languageは反転しない。
2.の Proof. de Morganの法則より、
L1 ∩ L2 =(L1 ∪ L2
)理論上はこのように計算できるが、現代的なオートマトンにおいては �Comple-mentation is expensive�である。DFAを反転させる際にはMDFA 7→ MDFA で大きくならないが、NFAを反転させようとすると、MNFA 7→Md
DFA 7→MdDFA
で NFAから DFAの変換が exponentialであるため、計算量が爆発的に増えてしまう。
CHAPTER 2. 有限オートマトンと正則言語 18
Lem. M1 =(Q1,Σ, δ1, q
(1)0 , F1
),M2 =
(Q2,Σ, δ2, q
(2)0 F2
)なる NFAを考え
る。いま、このような NFAM1 ×M2 について、
L (M1 ×M2) = L (M1) ∩ L (M2)
M1 ×M2 =(Q1 ×Q2,Σ, δ,
(q(1)0 , q
(2)0
), F1 × F2
)ただし、
((q, q′) , a, (q′′, q′′′)) ∈ δ ⇔ (q, a, q′′) ∈ δ1 ∧ (q′, a, q′′) ∈ δ2
Thm.2.10 L1, L2 ⊆ Σ∗ で L2: regのとき、L1\L2 も regularである。
Thm.2.11 L1, L2 ⊆ Σ∗ で L2: regのとき、L2/L1 も regularである。
第 6回
Σ∗ を Classifyする有限 formalizmとしての相互変換
2.9 ブール行列による有限オートマトンの表現
2.10 最小オートマトン
Q Lを L ⊆ Σ∗ の正則言語として、L = L (M)なる DFAM で状態数最小のものはあるか?
A ある。
Q そのようなオートマトンは一意であるか?
A (同型を除いて)一意である。
Q そのような最小オートマトンを計算することはできるか?
CHAPTER 2. 有限オートマトンと正則言語 19
A できる。
Intro M を DFAとする。「M 上で同じ役割を果たす語」とは何か。正確に言うと、
δ∗ (q0, x1) = δ∗ (q0, x2)
いま、Σ∗ を「役割」でチーム分けする→チーム数はM の状態数と同じになる。
同値関係 (equivalent relation) 同値関係とは、「抽象的等号」「ある性質において一致」という意味である。
Def.2.12 ≡⊆ X ×X, X 上の二項関係とする。
≡が equiv. relであるとは、
1. 反射性 (re�ecivility): ∀x ∈ X.¬ → x ≡ x
2. 対称性 (symmetry): x ≡ y → y ≡ x
3. 推移性 (transitivity): x ≡ y ∧ y ≡ z → x ≡ z
例
� ≡3⊆ N× N
x ≡3 y ⇔def x ≡ y (mod 3)
� M : DFA, ≡M⊆ Σ∗ × Σ∗
x ≡M y ⇔def δ∗ (q0, x) = δ∗ (q0, y)
X 上の equiv.rel.≡⊆ X ×X とする。x ∈ X に対して xの同値類であるとは、
[x] := {y ∈ x|x ≡ y} ⊆ X
のことをいう。
また、X/ ≡:= {[x] |x ∈ X}
をX の ≡による商集合 (quotient set)という。
CHAPTER 2. 有限オートマトンと正則言語 20
例
N/ ≡3 = {[0] , [1] , [2] · · · }= {[3] , [4] , [2]}= {{0, 3, 6, · · · } , {1, 4, 7, · · · } , {2, 5, 8, · · · }}
Def.2.13 R,R′ ⊆ X ×X のX 上の equiv.rel.とする。
R′ が Rの細分 (re�nement)であるとは、
xR′y ⇒ xRy
であることをいう。
例 ≡6 は ≡3 の re�nementである。
Def.2.14. R ⊆ Σ∗ × Σ∗ の equiv.rel.とする。
Rが右不変 (right-invariant)であるとは、
xRy ⇒ (∀z ∈ Σ∗.xzRyz)
である。
Def.2.15. (Myhill-Nerode relation) L ⊆ Σ∗の言語とする。(正則とは限らない)
RL ⊆ Σ∗ × Σ∗ を
xRLy ⇔def (∀z ∈ Σ∗. (xz ∈ L⇔ yz ∈ L))
とする。
Prop.2.10. RL ⊆ Σ∗ × Σ∗ は equiv.rel.かつ right-invariantである。
練習問題 Prop.2.10.を証明せよ。
CHAPTER 2. 有限オートマトンと正則言語 21
Prop.2.11. L ⊆ Σ∗ の言語とする。(正則とは限らない)
決定性オートマトン (有限とは限らない)ML =(QL,Σ, δL, q
L0 , F2
)を次のように定義
する。
QL :={[x]RL
|x ∈ Σ∗} = Σ∗/RL
δL :=QL × Σ→ Q
([x]L , a) 7→ [xa]L
例: δL ([x]L , a) := [xa]L注: ∀t ∈ QL.∃x ∈ Σ∗.t = [x]L注 2: [x]RL
= [y]RL⇔ xRLy
qL0 := [ε]L
F2 := {[x]L |x ∈ L}
δL, FL の well-de�nednessを checkする必要がある。
LemxRLx
′ ⇒ [xa]RL= [x′a]RL
(⇔ xaRLx′a)
は RL の right-invarianceにより明らか。
LemxRLy ⇒ (x ∈ L⇔ y ∈ L)
は RL の定義から明らか
Prop.2.11.(続き) ML は Lを recognizeする。
Proofδ∗L (q0, x) = [x]RL
δ∗L (q0, x) ∈ FL ⇔ x ∈ L
CHAPTER 2. 有限オートマトンと正則言語 22
Thm.2.16. (Myhill-Nerode) L ⊆ Σ∗ としたとき、以下は同値である。
1. L. regular
2. ∃R ⊆ Σ∗ × Σ∗(equiv.rel, right-invariant, �nite-index)
∃x1, · · · , xn ∈ Σ∗.s.t.L = [x1]R ∪ [x2]R ∪ · · · ∪ [xn]R
3. RL is �nite-index
Proof. 1. → 2. L = L (M)なる DFAM をとり、R =≡M とする。すると Rはequiv.rel, right-inv, �nit-indexとなる。
しかも、
L =∪
q0∈F
{x|δ∗ (q0, x) = q}
(= ⊘or [xq]≡M
(ただしδ∗ (q0, xq) = q
))Proof. 2. → 3.
� 2. の Rが RL の re�nementであることを示す。(やるだけ)
� よって RL も �nite-index
Proof. 3. → 1. ML(Prop.2.11.)は L = L (M2)を満たし、QL = Σ∗/RLよりDFAである。よって Lは regular。
Thm.2.17. M = (Q,Σ, δ, q0, F ) , L = L (M)とすると、Qφ−→ QL なる全射 φが存
在する。
Proof. φを以下のように定義する。
Qφ−→ QL
q 7→
{[x]RL
if ∃x ∈ Σ.s.t.q = δ∗ (q0, x)
[ε]RLotherwise
CHAPTER 2. 有限オートマトンと正則言語 23
注 φは well-de�ned
∵δ∗ (q0, x) = δ∗ (q0, y)とする。(aim.[x]RL= [y]RL
⇔ xRLy)
以下省略
第 7章
Myhill-Nerode L ⊆ Σ∗ を言語、x, y ∈ Σ∗ として、
x ≡c y ⇔ ∀z ∈ Σ∗. (xz ∈ L⇔ yz ∈ L)
と定義する。即ち、x, yが「Lに属するか」について同じ役割を持つということである。
Cor.2.3. (modi�ed) L からカノニカル (canonical. ⇔ arbitrary) に構成されるオートマトンML を
ML =(QL
(= Σ∗
/≡L ={[x]≡L
|x ∈ Σ∗}) ,Σ, δL, qL0 , FL
)なお [x]≡L
を [x]L とも書く。
M が決定的オートマトン、L (M) = L、M = (Q,Σ, δ, q0, F )であるとき、
(q 7→∃ [x]L)Q −→φ QL
(ただし δ∗ (q0, x) = q)寄って特に |Q| ≥ |QL|また、L:regular⇔ML:DFA
Cor. L:regular とすると、ML は Lを recognizeする状態数最小の DFA
次に、φ : Q→ QL は「ただの関数」よりも性質がいいことを示す。
Def.2.17.
M1 =(Q1,Σ, δ1, q
10 , F1
)M2 =
(Q2,Σ, δ2, q
20 , F2
)なる DFAsを考える。
M1からM2へのDFA準同型 (homomorphism)とは、φ : Q1 → Q2の型の関数で、
CHAPTER 2. 有限オートマトンと正則言語 24
1. φ (δ1 (q, a)) = δ2 (φ (q) , a) , ∀q ∈ Q1, ∀a ∈ Σ
2. φ(q10)= q20
3. q ∈ F1 ⇔ φ (q) ∈ F2∀q ∈ Q1
なるものをいう。
Cor.2.3. (補足) Cor.2.3.で引き起こされる
φ : Q↠ QL
は DFA-homomorphismである。
Proof. (一部) q ∈ Q, a ∈ Σとし、δ∗ (q0, x) = qとする。(i.e.φ (q) = [x]≡L)すると、
φ (δ (q, a)) = φ (δ (δ∗ (q0, x) , a))
= φ (δ∗ (q0, xa))
= [xa]≡L
また、
δL (φ (q) , a)
=δL([x]≡L
, a)
= [xa]≡L
よって等しい。(残りは省略)
ここから、minimal DFAの uniquenessが示せる。
注
{0, 1, 2} ̸={りんご,みかん,なし
}{0, 1, 2} ≃
{りんご,みかん,なし
}Def.2.18. M1,M2:DFAでM1とM2が同型 (isomorphic)であるとは、M1からM2
への DFA-homomorphismφ : Q1 → Q2 で、全単射であるものが存在するということである。
CHAPTER 2. 有限オートマトンと正則言語 25
Ex. φが全単射でDFA-homならば φ−1 : Q2 → Q1も (自動的に)DFA-homとなる。(やってみよう)
Thm.2.18. L;reg.lang.とすると、Lを recognizeする minimal DFAは同型を除き一意 (unique up to isomorphisms)である。
即ち、L = L (M1) = L (M2)
M1,M2: minimal ⇒ M1φ−→≃
M2
Proof. Cor.2.3.より、Q1
φ1−→ QLφ2←− Q2
しかし、M1:minimalより φ1 は全単射、φ2 も全単射。ゆえにM1,M2,ML はすべて同型。
coalgebla
Lem. φ : Q1 → Q2,M1 からM2 への DFA-hom ⇒
L (M1) = L (M2)
Proof.x ∈ L (M1)⇔ x ∈ L (M2)
を |x|についての帰納法で示す。
Prop.2.14. 以下は同値である。
1. x ≡L y
2. x\L (= {z|xz ∈ L}) = y\L
Proof. やるだけ
CHAPTER 2. 有限オートマトンと正則言語 26
Thm.2.19. L ⊆ Σ∗ を言語として、
M ′L :=
(Q′
L,Σ, δ′L, q
′L0 , F ′
L
)Q′
L := {x\L|x ∈ Σ∗}
q′L0 = L
δ′L : Q′L × Σ→ Q′
L ((x\L, a) 7→ (xa) \L)
F ′L = {X ∈ Q′
L|ε ∈ X} (= {x\L|x ∈ L})
とすると、M ′L とML は isomorphicである。
Proof. 略
例L = L (0∗10∗)
(図省略)
0\L = {x|0x ∈ L (0∗10∗)}=L (0∗10∗)
=L
1\L = {x|1x ∈ L (0∗10∗)}=L (0∗)
11\L = {x|11x ∈ L}=⊘
3つ目のminimal DFAの作り方
L = L (M)⇝ minimal DFA M
すなわち、M ⇝
(オートマトン最小化
)M ′
↑ partition-re�nement algorithmによる
CHAPTER 2. 有限オートマトンと正則言語 27
idea
� 「最低限必要な区別」を求める
� 区別の必要のない stateは同一視 (「つぶす」)
Def.2.10. pと qが distinguishableであるとは、
∃z ∈ Σ∗. (δ∗ (p, q) ∈ F ̸⇔ δ∗ (q, z) ∈ F )
である。
Thm.2.20. M :DFA、≡M :indiistinguishability on M とする。ただし、
p ≡M q ⇔ ∃z. (δ∗ (p, q) ∈ F ⇔ δ∗ (q, z) ∈ F )
と定義される。すると、M/≡M が well-de�nedでminimalとなる。
Q ≡M は計算できるか?
A できる。
例.2.18. (図省略)
1. 8× 8 matrix (実は半分で OK)ではじめは空とする。
2. (x, y)←{x ∈ F, y /∈ F または x /∈ F, y ∈ F
}に Öをつける
3. xa−→ x′, y
a−→ y′, (x′, y′)が Ö→ (x, y)も Ö
4. saturateするまで 3.を繰り返す
5. (x, y)が Öなら x ̸≡n y、そうでないなら x ≡n yである。
第 8回
Chapter 3
�
入力待ち
第 9回
{0n1n|n ∈ N}っは、not regular, but context-free.{S → 0 1
S → 0 S 1⇝ derivation trees production rules
r ∈ V × (V × T )
(図省略: derivation tree)
前回G = (V, T, P, S)
w ⇒ aw′ (w,w′ ∈ (V ∪ T )∗)
⇔def ∃α, β ∈ (V ∪ T )∗.∃ (A, γ) ∈ P.w = αAβ,w′ = αγβ
28
CHAPTER 3. � 29
Def. w ∈ T ∗ とする。wが G(CFG)によって導出される (derived)とは、
S ⇒∗G w
L (G) := {w ∈ T ∗|S ⇒∗G w}
例.3.3.L (G) =
{w|(aの個数
)=(bの個数
)}V = {S,A,B}
T = {a, b}
P =
S → aB
S → bA
A→ a
A→ aS
A→ bAA
B → b
B → bS
B → aBB
Q Given w ∈ T ∗ and G, can we check if w ∈ L (G)?
Def. L ⊆ T ∗is context-free とは、
∃G : CFG.L = L (G)
Ex.3.2. (Closure properties of CFL) L1, L2:CFLとする。このとき L1 ∪L2はCFLである。 {
S → S1
S → S2
� L1 ∩ L2 は CFLでない。
� L1 も CFLでない。
CHAPTER 3. � 30
� L1 · L2 は CFLである。(s→ S1S2)
� L∗1 は CFLである。
({s→ ε
s→ S1S
)
� LR1 は CFLである。(G1 の prod.ruleの RHSを revise)
§ 3.1.1
導出木 (derivation rule)=構文木 (parse tree)
Consider
a :=
({E} , {+, (, ), id} ,
{E → id
E → (E + E), E
)
L (G) ∋ id, id+ id, id+ id+ id
問題: id+ id+ idは複数の derivation treeを持つ
Def.3.6.
� G:CFGとする。Gが ambiguousであるとは、
∃w ∈ T
� L ⊆ T ∗ が ingerently ambiguousであるとは、
L = L (G)⇒ G : ambiguous
である。
Agenda
� CFGの簡素化、正規化 (Chomsky normal form)
� → Pumping Lemma
CHAPTER 3. � 31
Lem.3.7. 例 S → ε
S → B
B → BB
とすると、これが生成する言語は {ε}となり、2番目と 3番目の式が無駄になる。
G⇝変形 G′
� L (G) = L (G′)
� G′ の任意の nonterminal Aについて、∃w ∈ T ∗.A⇒∗G′ w
Lem.3.2. 例: {S → ab
A→ a
Aは unreachableなので無駄である。
Thm.3.4. 例: S → BC
B → ε
C → ε
において B,C は無駄である。
Thm.3.5. {S → A
A→ a
において Aは無駄である。
Thm.3.5. G = (V, T, P, S):CFG
Gを次の条件を満たす CFG G′ に変形できる。
� ∀A ∈ V.∃w,w′ ∈ (V ∪ T )∗.S ⇒∗
G′ wAw′
CHAPTER 3. � 32
� ∀A ∈ V.∃w ∈ T ∗.A⇒∗G′ w
� ∀A ∈ V. (A→ ε) /∈ P
� ∀A,B ∈ V. (A→ B) /∈ P
� ∀w ∈ T ∗ (= T ∗\ {ε}) .w ∈ L (G)⇔ w ∈ L (G′)
Thm.3.6. G:CFGとする。Gを次の条件を満たす CFG G′ に変形できる。
� ∀w ∈ T ∗ (= T ∗\ {ε}) .w ∈ L (G)⇔ w ∈ L (G′)、すなわち
L (G) \ {ε} = L (G′) \ {ε}
� Production ruleが全て {A→ BC
A→ a
の形 (nonterminal 2つか、terminal1つ)
証明 例で、 {S → SaS
S → b
Step 1: terminal a, bに対して freshな nonterminal Ca, Cb を導入するS → CaS
S → Cb
Ca → a
Cb → b
Step 2: terminalが現れるのは必ず A→ aの形。他の ruleは必ず
A→ B1B2 · · ·Bn1
の形。
S → SD1
D → CaS
S → Cb
Ca → a
Cb → b
CHAPTER 3. � 33
最初のGが Thm.3.5.のように simplifyされていれば、こうして Chomsky nf.に変形できる。
§ 3.4. CFGのPumping Lem
(図省略)
Thm.3.7. L: context-free language
このとき、
∃N ∈ N.∀z ∈ T ∗ (|z| ≥ N ⇒ ∃u, v, w, x, y ∈ T ∗. [condition])
ここで conditionは、
1. z = uvwxy
2. |vx| ≥ 1
3. |vwx| ≤ N
4. ∀n ∈ N.uvnwtny ∈ L
Proof L:CFLなので、∃G : CFG s.t. L = L (G)
Thm.3.6.より Gは chomsky normal formとしてよい。Gの deriv. treeに対して図のように考える。
Q N = |V |+ 1_ 2(|V |+1)?
A N = 2|V | + 1
なぜなら、(図省略)
Thm.3.4.1. {|anbncn|n ≥ 1}は not CFL
Proof Pumping LemmaのN をとって aNbNcN を考えられる。
CHAPTER 3. � 34
第 10回
Regular lang. ⇒ CFL. ⇒ languages (ingeneral)
は成り立つが、逆は成り立たない。反例は例えば、
{0n1n|n ∈ N}
は CFLだが Regular lang.ではなく、
{0n1n0n|n ∈ N}
は languageだが CFLではない。
Thm.3.9. {0n1n0n|n ∈ N}は context-freeでない。
Proof. Lを context-freeと仮定し、pubping lemmaの定数N をとり、0N1N0N を考える。ここで 0N1N0N ∈ Lである。Pum;ing Lemmaより、∃u, v, w, x, y ∈ Σ∗s.t.
� 0N1N0N = uvwxy
� v ̸= εorx ̸= ε
� |vwx| ≤ N
� ∀n ∈ N.uvnwxny ∈ L
0N1N0N と uvwxyのいち関係による場合分けを行う。
1. vと xがともに最初の 0のブロックに含まれる
uv0wx0yは明らかに Lに属さない。矛盾
2. xが 0と 1にまたがっている。
xn の中で 0と 1が n回 �ipし、明らかに uvnwxny /∈ Lである
3. vが最初の 0のブロック、xが 1のブロックに含まれる
uv0wx0yは明らかに Lに属さない。矛盾
4. vが最初の 0のブロック、xが最後の 0のブロックに含まれる
|vwx| ≤ N より、不可能
以上より証明完了
CHAPTER 3. � 35
Thm.3.10. (Ogden's Lemma) L: CFLとすると、∃N s.t. |z| ≥ N ⇒ ∃u, v, w, x, ys.t.
� z = uvwxy
� |vx| ≥ 1 vxは少なくとも 1つの区間を含む
� |uwx| ≤ N vwxはたかだかN この区間を含む
� ∀n.uvnwxny ∈ L
Proof. 省略
Thm.3.9.1. {0n1n0n|n ∈ N}は、context-freeでない。
Proof. さっきと同じく 0N1N0N を考えて、最初の 0N を特定位置とする。
3.5 CFGのmembership problem.
input: CFGGと w ∈ Σ∗
output: w ∈ L (G) or not?
例 3.10 S → AB|BC
A→ BA|aB → CC|bC → AB|a
=: G
w = baaba
= w1w2 · · ·w5 (wi ∈ Σ)
ideas
1. Vij ={X ∈ V |X G−→ wiwi+1 · · ·wi+j−1
}2. Gは Chomsky normal form
CHAPTER 3. � 36
3.
V2,3 = {X|X ⇒ w2w3w4}= {X|X → Y Z, (Y ∈ V2,1 ∧ Z ∈ V3,2) ∨ (Y ∈ V2,2 ∧ Z ∈ V4,1)}
第 11回
入力待ち
第 12回
Chapter 4
Turing Machines
intuitions
1. tapeを走査する headは q ∈ Q (�nite set)なる internal stateを持つ
2. The length of the tape is unbounded (before: |tape| = |input word|)
3. head can move to the left and the right (before: only →)
4. The head can write in the tape
Def.4.7. A Turing machine is
M = (Q,Σ,Γ, δ, q0, B, F )
Q: �nite set of head's states
Σ: input alphabet, Σ ⊆ Γ, B /∈ Σ
Γ: tape alpabet
δ: Q×Γ→ Q×Γ×{L,R}(Q: current set (of the head), Γ: symbol read,→: partialfunction (can be unde�ned), Q: next state, Γ: symbol to write, {L,R}: movement)
B: blank symbol, B ∈ Γ (B ∈ Γ\Σ)F : the set of accepting states F ⊆ Q
37
CHAPTER 4. TURING MACHINES 38
Def.4.2,4.3. Skip
Turing machines' tasks is
� word classi�er
� compute functions (§ 4.2)
Def.4.4. M : TM
L (M) ⊆ Σ∗is de�ned by L (M) = {w ∈ Σ∗|read w and state changes from q_0 and q,∃q ∈ F}しかし!
TMは �word classi�er�としては、オートマトンとはだいぶ違う。wordが受理される場合は有限時間でわかるが、受理されない場合は、
� δ (q, a)が unde�ned(detect可能)
� 同じ IDに戻る (堂々巡り。detect可能)
� その他、無限に動き続ける
cf. The Halting Problem is undecidable (停止問題の非決定性)
これを決定する algorithmはない。In other words, What is the mightiest notion of computation/machine? (theory ofcomputational models)
It turns out...
TM = aTM = nondet. TM = λ-calculus = recursive functions
⇒ Church's thesis: Def. A computable funtction if what is computable by TM.
Algorithms for automata
� state minimization
� emptiness check
� Given: M : NFA
� Answer: L (M) = ⊘
� inclusion check
� Given: M1,M2
� Answer: L (M1) ⊆ L (M2)
Q. Emptiness check for TM. Decidable? - 16:15
CHAPTER 4. TURING MACHINES 39
おまけ 帰納的 = decidable = computable
帰納的可算集合 = semidecidable = semiconputable
Negation Theorem P と notP が両方 semidecidableであるとき、P は decidableである。