このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

ε記号、μ記号、ν記号

イプシロン計算については次のエントリーなどで紹介したことがあります。

ε記号はヒルベルトあたりが導入したんじゃないのかな、よく調べてないけど。ところで、再帰的計算に関連してμ(ミュー)やν(ニュー)という記号が出てきますが、これはεと似たようなものです。そのことをちょっと述べておきます。

内容:

集合の内包的記法

Pがなんらかの条件を表す論理式のとき、{x∈X | P(x)} という書き方はよく使われます。集合の内包的記法ですね。Xをあらかじめ決めて固定しておけば、{x | P(x)} でもいいでしょう。以下の例では、X = R(実数全体の集合)として、条件Pは足し算・掛け算・大小順序などを使って書くことにします。

{x | P(x)} という書き方は広く普及して安定した構文ですが、ここではあえて σx.P(x) と書いてみます。σは、setのsに対応するギリシャ小文字です。わざわざ σx.P(x) なんて書いたのは、ギリシャ小文字を使った一連の記法に慣れてもらうためです。このテの記法で一番ポピュラーなのはラムダ記法 λx.E でしょう。

σx.P(x) の基本的な性質は次です。

  • a∈σx.P(x) ⇔ P(a)

例えば、

  • 2∈σx.(x≧0 AND x*x ≦ 10) ⇔ (2≧0 AND 2*2 ≦ 10)

ε記号

ε記号を使った式 εx.P(x) の基本的な性質は次のようになります。

  • a = εx.P(x) ⇒ P(a)

σ記号の性質と少し似てます。P(a) のaに a = εx.P(x) を代入すると次の形です。

  • P(εx.P(x))

これが成立する背景は:

  • a = εx.P(x) ⇒ a∈σx.P(a)

あるいは:

  • εx.P(x)∈σx.P(a)

つまり、εx.P(x) とは、集合σx.P(a)の要素を適当に選んだものだ、ということです。ただし、集合σx.P(a)が空だと要素を選べません。
例えば、σx.(x*x < 0) とかです。この特殊ケースへの対処法はいくつかあります。

  1. σx.P(a) が空でないときだけ考える。
  2. σx.P(a) が空のときは、εx.P(x) は未定義だとする。(「未定義の定義」をちゃんとする必要があります。)
  3. σx.P(a) が空のときは、εx.P(x) はなんでもいいとする。そして、基本的な性質として (∃x.P(x)) ⊃ P(εx.P(x)) (「⊃」は含意)を採用する。

ここでは、「σx.P(a) が空のときは、εx.P(x) は未定義」として、未定義を特殊な値⊥を使って表現することにします。

μ記号

考えている範囲全体である集合Xに順序が入っているとします。すると、集合σx.P(x)も自然に順序集合となります。集合σx.P(x)から適当な要素を選んでεx.P(x)とするわけですが、順序集合のときは、特に目立つ「代表的な要素」として最小元を取ることができます。もちろん、最小元があれば、ですが。

σx.P(x)の最小元を(それがあれば)ε↓x.P(x) と書くことにします。すると、ε↓はεと同じ性質を持ちます。

  • a = ε↓x.P(x) ⇒ P(a)

あるいは:

  • P(ε↓x.P(x))

ここで、P(x) として、x = f(x) という不動点方程式を取ります。そんときの ε↓x.P(x) は、ε↓x.(x = f(x)) ですから:

  • P(ε↓x.P(x)) ≡ (ε↓x.(x = f(x)) = f(ε↓x.(x = f(x))) )

ウーン、なんか括弧が多くて鬱陶しいな。a = ε↓x.(x = f(x)) と置いて、aの性質を書けば:

  • a = f(a)
  • x = f(x) を満たすxのなかでaが最小

a = ε↓x.(x = x*x) の場合で考えてみましょう。まず、σx.(x = x*x) = {0, 1} となります。{0, 1}のなかで最小は0ですから、a = ε↓x.(x = x*x) = 0 です。実際:

  • 0 = 0*0
  • x = x*x を満たすxのなかで0が最小

ε↓x.(x = f(x)) の略記が μx.f(x) です。例えば、μx.(x*x) = 0 ですね。μ記号は、不動点方程式という特殊な条件に限定して、最小元を選ぶ方法を採用したε記号です。

次のような場合はμ記法の値は定義されないことに注意してくだささい。

  • μx.(x*x + 1) -- x = x*x + 1 となるxがない(あくまでR内でのことです)。
  • μx.(x) -- x = x となるxはいくらでもあるが、最小のものを選べない。

ν記号

ν記号は、μ記号の「最小元」を「最大元」に置き換えたもので、ε↑x.(x = f(x)) の略記だと思えばいいでしょう。もちろん、↑は最大元を選ぶことを意味します。例えば、νx.(x*x) = 1 となります。ν記号に関する性質や注意は、最小と最大の違いを除いてμ記号と同じです。