2013年6月17日月曜日

カントールの楽園にて - 現代数学とは何か

〇〇学とは何か?などという質問は答えにくいし、そもそも的はずれな気はする。物理学とは何か?とか言われると、まあ物理を対象にするんでしょ、とは言えそうだけど、じゃあ物理って何?Naturaな物全部でしょ。でそれ以外のものってあるの、という話になる。とは言え、〇〇学という名前で講座を構えていたりすると、やはり外部から君等何やってんの、と言われて答えなくてはいけないことがあるだろうし、結果として的はずれな回答が量産されてきた気がする。

と的外れを承知で、だけどもやはり分かりやすい解説は必要だなあと思って自分なりの答えをまとめてみたい。

古典古代の考え


古典古代というと、ここでは古代ギリシャ・ローマのこと。ここで数学とはどう考えられていたかというと、アリストテレスによれば「量」を扱う学、と特徴づけられていた。どのような量を扱うかで、数学はさらに、離散量を扱う「数論」、連続量を扱う「幾何」、連続量同士の比例関係を扱う「音楽」、動的に変化する連続量をあつかう「天文学」の4分野に分類される。

この考えはかなり影響があったようで、ガウスの講義録を読んだことがあるけれど、数学は量を扱う学問で…という話から始まっていた。もっとも、ガウスはこんな一般論は興味ないみたいですぐ具体的な数学の話になったけど。最近でもある人文系の学者は数学を適応することを「量化の暴力」(笑)と呼んだりしている。

では、現代の数学は量を扱う学問なのだろうか。正直あまりそうは思えない。こじつければこじつけられるだろうけど、カラスと机と似ているところはな~んだ、みたいな話になると思う。

では現代数学とはなんだろうか。それは、カントールの楽園からの声なのである。

カントールの楽園にて


ゲオルグ・カントールは19世紀半ばの数学者。主な業績は集合論を作ったことにある。集合論とは集合に関する理論だけど(当たり前)、集合とはなんだろうか。一応、「物の集まり」で集まりに入るか入らないかはっきりした基準があるもの、と教えられる。普通の数学者はこの定義を教えられた後は、実際に集合概念が使われるのを見て、集合とは何かを学んでいくのだと思う。こういう集合論を素朴集合論という。もっとも素朴集合論は突っ込みどころ満載なので、専門の集合論研究者は集合がみたすべき公理を色々立ててその公理の性質を調べる、という間接的な方法で集合を研究している。例えば、ある集合と別の集合を合わせたものも集合になる、とか、(これはもっと問題含みだが)無限集合が存在する、とか。ただ、一般の数学者はこういう話はほとんど知らないのが普通。

で、現代の数学は集合が何らかの意味で実在していると考え(存在論的プラトニズム)、集合またはこれで表現できるものについて研究しているとだいたい言えると思う。圏論とかはちょっと違うかもしれないけど。数学を専門的に学ぶと、それまで学んできた数学が、集合の言葉で徹底的に再構成されるのを経験すると思う。

さっき、集合は物の集まり、といったけど、原子の集まり、とかそういった「自然的な」対象の集合はあまり考えられない。集合論は普通何も含まない集合(空集合)の存在を要請するわけだけど、空集合から出発してほとんどあらゆる数学対象が構成できる。∅を空集合の記号、{a, b, c}をa, b, cからなる集合とすると、自然数は次のように構成できる。
0 = ∅、1={∅}、2={∅,{∅}}、3={∅,{∅,{∅}}} ...
などなど。結局具体的な「物」は全然なくても数学が集合論の中だけで議論できてしまうのだ。これをカントールの楽園と呼びたい。

これでいいのか、とか存在論的プラトニズムの問題


さて、こんな楽園に暮らしていていいのだろうか、というのはちょっと不安もある。もっと実践的なことをやれ、というのは野暮だけど、存在論的プラトニズム(数学は特殊な実在のクラスである数学的対象について議論している)についてはいろいろもにょるものがある。ヴィトゲンシュタインなどは、数学は有意味だけど、そこで現れている名辞にそのまま対応した対象が実在すると考え無くていいんだよ、という主張をするために言語哲学に入っていったようだし、ブラウアーは数学的対象を、客観的実在の代わりに、数学者の精神の中にある観念的な対象としようとした。

とまあ、批判もあるわけだけど、集合論という枠組みは21世紀に入っても、当面揺らぎそうにない。

入門XML



XMLというと、ソースまともに読めないし文法が厳密すぎて手で書けないし、規格が乱立していてよく分からないし、まあいい印象はなかった。この本を読んでその印象が変わったかというと、どうだろう、これまで独自のバイナリ形式で保存していたところ、XMLで保存するようになって互換性が上がったとは言えるのかな。XMLにはAutomata theoryとかが影響しているそうだし、XSLTなんかちょっと関数型言語っぽく見えて面白そうではあった。

2013年6月4日火曜日

並行システムの検証と実装



並行システムのモデリング言語CSP(Communicating Sequencial Process)の本。単にCSPの理論だけでなく、モデル検査器FDRを使った検証や、JavaによるCSPの実装JCSPを使って、CSPで記述された並行システムの実装を行うところが特徴。

といっても私はCSPの理論だけに興味があったので、理論に関係しそうなところを拾い読み。CSPは内部選択と外部選択の違いなど結構微妙なところが多く、きちんと理解したとはまだいえないと思う。一番わからないのが失敗発散方式(Failure-Divergent model)で、定義の動機付けがよく分からない。この本もさらっと定義と他の方式との比較が書いてあるだけで、よく分からなかった。

とは言え、Hoareの本はちょっと古いし、Loscoeの本は難しすぎるので、CSPの参考図書としてこれから必要があれば参照すると思う。