Chandler@Berlin -68ページ目

Chandler@Berlin

ベルリン在住

(English version)

前回するどいコメントがついた.壊れた自動販売機だったらどうするのかということである.しかし,「壊れたというのはどういうことか」をまずはっきりさせないといけないだろう.「壊れているというのは壊れているということだ」,と言う人もいるだろう.しかし数学者にはそんな言葉は通じない.数学者には常識はないのか,そうかもしれない.もちろんそれには理由がある.

私が数学を趣味にしているのは,主に数学を使って機械(計算機)に仕事をさせて楽をするためである.したがって,私個人にとっては機械が解釈可能であるような考えでないとそんなに面白くないのである.数学というのは機械に解釈できる部分が多い,だから私には有用だし,楽しみがある.情報を探してこいとか,家から駅までの最短距離を教えてくれとか,安いチケットを探してこいとかいうのも,機械が解釈できる形になっていなくては何もできない.壊れているというのがはっきりしないというのは,それを機械にどう解釈可能な形で指定するかというのがはっきりしないということである.

たとえば,入力しても何もでてこないような函数は壊れているのか.それとも予想できないものがでてくるのが壊れているのか,あるいは何を入れても同じものしか出てこなかったらそれは壊れているのだろうか.というように壊れていると考えられることはいくつもある.このように何をもって壊れているのかを指定できない場合には現在の機械には解釈が難しい.

また,壊れているという言葉はある意味主観的なものでもある.ある種類のチップはその内部の情報が重要であるがために,中を覗こうとすると二度と読み出せなくなる機能がある.つまり,ある条件で壊れるように作られている,とも言える.たとえば,クレジットカードの暗号を保存しているチップや,コピーガードのチップにはこういう機能があるものがある.二度と内部の情報が読み出せないということを「壊れる」という表現を使う人がいる.しかし,それは実は設計者にとっては正しい動作であって,設計者にとってはまったく壊れていないのである.設計者にとってそういうチップが壊れているという意味は,情報が漏洩しそうなときに壊れないチップが壊れているのである.こういうものは人間には理解が簡単であろうが,現時点の機械にはなかなか難しい.誰かにクレジットカードを盗まれた人がいたとしよう.その人はチップが他人には使えなくなることを期待するだろう.もし,チップが壊れていて,盗んだ人が秘密の情報を読みだすことができて,カードが利用されてしまったら,クレジットカードの所持者はそのチップが「壊れていたから壊れなかった」として訴訟を起こすかもしれない.

λ計算は計算が何かを考えるものであるから当然こういうような函数についても考えているのである.簡単に言えば,上記の壊れているというものの表現ができないのであれば,それはこの計算方法の限界を示すのであって,不完全なのである.ただし,どういうものが壊れているのかはちゃんと人間が定義する必要がある.数学者は面倒くさがりやだが,不完全なものは嫌いである.いかにさぼって完全なものを手にするのか,そう,「さぼり」ですら「完全なもの」を追及するのが数学者の美学である.だからそういうことも当然考えているのである.数千年の数学の歴史は数学の完全性に関しての理論で一区切りがつくほどである.しかしこのテーマは,ここで述べるには大きすぎるし,私のような単なる日曜数学が趣味の者には荷が重いので言及できないかもしれない.でも,機会があればどこかでこのことに関して少しは述べることにしよう.

(英語版 )

λ計算は計算とつくだけあって,数も計算できるが,実際,数というものをつきつめて考えていくと,よくわからなくなってしまう.たとえば数を知らない小さな子供にどうやって数というものを教えたら良いのだろうか.ただ,数についてのいくつかの性質は挙げることができそうだ.まず,どう読むかはどうでも良いことである.ガイドにおいて地球という既に失なわれて久しい星には多数の言語が乱立していた.たとえば英語とかドイツ語とか日本語とかいうものである.面白いことだが,どの言語にもどうやら数というものはあるようだ.そしてそれぞれ 1 2 3 (one two three, ein zwei drei, いち に さん) のようにいろいろな読み方がある.しかしどう読んでもその表すことは同じはずである.ガイドの内部では 1 2 3 は(ニシン サンドイッチ ニシンのサインドイッチ)と読んだりするかもしれない.しかし,しつこいようだが,結局どう読むかはどうでも良いことである.つまり読み方とか関係ない何かが,数の本質にはあるはずだ.ガイドの内には「何か」がつまっていて,読者に応じて「何か」は読者に理解できるような形に変換されて提示される.一つ前の章でガイドの内部表現と言ったのは,ガイドの内容そのものである.何語で書かれているかは本質的にはどうでも良いのだ.

λ計算とは函数について考える数学である.函数または関数(function)という便利な考えが数学にはある.何かを入れると何かが出てくる自動販売機のようなものだ.普通,1 アルタイルドルは何シリウス円なのかなどということを教えてくれる箱のようなものと考えることが多い.ガイドの中にもそういう函数があるのではないかと思う.

別に函数は箱である必要はないのであるが,私の場合,最初にたまたま自動販売機の例えで教わったせいか,はたまた函(はこ)という文字があたっているからかわからないが箱を思いうかべてしまう.このような函数を地球では標準的に fとか g とかと教えるが,教える方も教わる方もそれが何かはあんまり気にしなかったり,結局よくわかっていないようだ.コンピュータ学者はわかっていないことを素人に知られるとたいへん困るので,函数というような既にポピュラーになってしまった言葉を使わずに,いろんな言葉を使う.

λ計算というものもたいていの計算機学者は素人を誤魔化すための言葉として使っている.「不動点定理むにゃむにゃ」「計算可能性なむなむ」とかいう大学の教授がいたら,騙されないようにしないといけない.特にスーツを着ていて偉そうなのはあやしい.

でもλ計算は函数というのが何かを考える時には便利なこともある.ま,私もわかっちゃいないので,「チャーチロッサー性がむにゃむにゃ」とか言ってここで話を終わりにしても良いのだが,ものを書こうなどという人間の性で,ちょっとは知っていることを自慢したかったりするので,ガイドの中ので有名なロボット,マービンがやってくるまでは話を続けよう.ところでマービンは最低の気分を持っている最高のロボットのことである.シリウスサイバネティクス社が300人分の頭脳を持った天才ロボットを試作したところ,天才と正気は両立しないということが判明した.それがマービンだったりする.

私の大好きなマービンがようやく登場したので,今日はここまでにしよう.

λ計算とヒッチハイカーズガイド

ブログを書くことなどないだろうと思っていたが,友人のブログが一週間お休みになってしまったのを機会に自分の興味あることを書いてみることにした.しかし,自分には興味があるが,どんな読者ならばこんなことに関して興味を持つのだろうか.

今回のネタはλ計算というものだ.実はいったいこれがなんなのかが知りたくて,Wikipedia を見てみた.ところが,実際の計算を理解するまでに一週間かかってしまって,友人のブログはもう再開されている.とても特殊な話だし,友人のブログは面白いのでそっちを読めばもう書かなくてもいいかなと思ったが,一週間かかってわかったことを自慢したくなったので書いてみよう.でも,誰かにコメントで「そんな簡単なことを一週間も考えないとわからないとは,愚かものめ」,と書かれるかもしれないと思うとちょっと勇気が必要である.

とにかく何がとてつもなく日常世界と違うことに出会ったら,まずは何かのガイド本を開くのは一つの手である.有名なガイド本には地球の歩き方とか,銀河ヒッチハイカーズガイドとかがある.私は銀河ヒッチハイカーズガイドという小説のファンなのでλ計算のヒッチハイカーズガイドを書いてみようと思う.

銀河ヒッチハイカーズガイドによれば,銀河ヒッチハイカーズガイドという本は銀河で最も売れている本の一つである.しかし,それがいったいどの言語で書かれているかは明らかにされていない.売れている本ということは,どうやら,銀河のどの人達もそれを読むことができるようだ.ただし,光の感覚器官が無い人達はいったいどうやってガイドを読むのだろうかという疑問は残る.

ガイド本は人工頭脳を内蔵しており,各星人は Babel fish を使って理解するという方法もあるかもしれない.Babel fish というのはこの小説の中ではテレパシーを使って翻訳をしてくれる便利な魚であるが,魚なのでよく間違える.(この小説から名前をとった翻訳エンジンもある.)

しかし,小説の主人公Arther は確か Babel fish を入手する前に既にガイドを読んでいたようだ.とすると,何らかの翻訳機が入っているのであろう.銀河中の各星人向けの翻訳があるのではというふうに考える人もいるかもしれないが,ガイド社が各星人向けに翻訳するような手間をかけるはずがない.ガイド社はかつて時間と空間を越えてたった一冊の本を全ての平行宇宙に売ろうとした会社である.

翻訳装置ができるとしても,その本の native な言語というものは多分あるだろう.内部表現というやつである.どんな言葉が使われているかというかは想像することもできないが,論理などは言語にあまり依存しないでようにすることもできる.しかし,どんな論理も人間に理解できるようにするには,どこかで自然言語とのインターフェイスをとらなくてはいけない.論理自身は最初にいくつかの
定義が必要である.たとえば真とか偽とは何かとか,数字の 1 は何かというようなことである.

まずはλ計算がどんなことを考えているのか,その内部表現は何なのかを続きで書いてみようと思う.