<   2014年 05月 ( 15 )   > この月の画像一覧

ラッセルのパラドックスの謎が解けた

過去記事の『ラッセルのパラドックスの意味するもの』に手を入れていたら、ラッセルのパラドックスについて以前から感じていた疑問が解けたような気がするので、内容が重複するが記述してみる。

1. ラッセルのパラドックス

ラッセルのパラドックスは素朴集合論について、イギリスの哲学者・数学者バートランド・ラッセルが発見したパラドックスだ。それは、

「自分自身を要素として含まない集合の集合は、自分自身を要素として含むとも含まないとも言えない。」

というパラドックスだ。この集合を R とすると R が自分自身を要素として含まない場合、R は「自分自身を要素として含まない集合」になるから R は R の要素でなければならない。一方、R が R を要素として含んでいると、これは「自分自身を要素として含まない」という内包的定義を満たしていなければならないので、R は R を要素としては含まないことになる。いずれの場合もパラドックスが生じてしまうのだ。

集合は自分自身を要素として含むか、自分自身を要素としては含まないかどちらかに分けられるはずだから、その片方にパラドックスが生じてしまうと、内包的定義で集合を定義するという方法が使えなくなってしまう。さらに、たいていの集合は自分自身を要素としては含まないように見えるので、それらを集めた集合にパラドックスが発生してしまうことは、集合論の根幹を揺るがすものになる。

「集合」をものの集まりという「もの」と考えるという簡潔な定義と、述語を満たす要素を集めることで集合を定義できるという内包公理のなかに、紛れもないパラドックスが潜んでいた訳で、当時の論理学者や数学者の慌てぶりが想像できる。

しかし、管理人が長い間わからなかったのは、このようなパラドックスがどのようなメカニズムで起きるのかということだった。それが分かったのだ。さらに、ラッセルの集合にかかわらず、素朴集合論では内包的定義で集合を定義した時にラッセルのパラドックスの場合と同じ困難を抱えていることが分かったのだ。

2. ラッセルのパラドックスの発生メカニズム

さて、ラッセルのパラドックスがどのようなメカニズムで発生するのかを見てみよう。

ラッセルの集合は「自分自身を要素として含まない集合全ての集合を集めた集合」だが、全てではなくて、適当な数の「自分自身を要素として含まない集合」を集めて R' を作ってみる。「自分自身を要素として含まない集合」だが、たとえば、「犬の集合」はその集合自体は犬の集合の要素としては含まれないので、そのような集合をみつけるのは簡単だ。

そこで、そのような R' について R' 自身が R' の要素として含まれるかどうかを考えてみる。内包的定義から R' は R' に含まれないことは明らかだ。なぜなら R' が要素として R' に含まれてしまうと、要素としての R' は自分自身を要素として含む集合になってしまうからだ。したがって、R' が R' 自身を要素として含むことはない。しかし、まさにそのことのために R' は「自分自身を要素として含まない集合」という内包的定義を満たしてしまうことになる。

このような集合の場合、しかし、内包的定義が「自分自身を要素とする集合」全てを集めたものではないから、問題にはならない。この集合は安定して存在し得るのである。しかし、どのような R' を作ってもその R' は「R' を要素として含まない」にもかかわらず「自分自身を要素としない集合」という内包的定義を満たしてしまう。したがって、ラッセルの集合のような「自分自身を要素としない集合」全てを集めた集合は作れないのだ。

集合の内包的定義は、述語 P(x) を満たす x を集めることで集合を定義する。述語 P(x) は任意の x に対し真か偽かを値として戻す関数だ。この関数は排中律から、全ての要素 x について必ず真か偽の値を戻すことが要求される。

ここで、P(x) を真にする要素を集めて集合 A を作ってみよう。すなわち、

A = {x| P(x) == True}

だ。これを手続き的に考えると、いろいろな要素を述語 P(x) に照らして集合 A の要素かどうかを判別していく。この際、集合 A を決定するときに述語 P(x) は A 自身には適用しない。なぜなら、A の要素全てが確定するまでは、集合 A というものは存在しないからだ。そうやって集合 A が作られたとすると、今度は、集合 A 自身も「集合」という「もの」であることがわかる。したがって、排中律が成り立つためには述語 P(x) は A 自身にも適用されないといけない。

P(x) が「x は偶数である」というような内容であれば A が P(x) を満たす、すなわち、A が A 自身の要素になるということはないので問題は起きない。また、「x は犬ではないものの集合である」という述語の場合、A が A を含んでいたとしても一見問題は発生しないので見過ごされてしまう。その場合でも、述語 P(x) で定義した集合それ自身に対して述語 P(x) を適用するという自己言及はラッセルの集合に限らず素朴集合論では普遍的に見られるものなのだ。

ラッセルの述語は、集合 A を述語 P(x) で定めるときに、作られた集合 A そのものも述語 P(x) の対象になってしまうという素朴集合論の内包的定義の瑕疵を巧妙についてパラドックスを作り出していたのだ。

集合 A を決定するための述語 P(x) を集合 A そのものに適用して良いのかどうかという問題については、集合と要素のランクを厳密に区別したり、内包的定義は集合の要素として確定しているものだけにしか適用しないなどの工夫がされている。しかし、ほとんどの数学理論では A が P(x) を満たすことはないので、この点については曖昧なままでも特に理論の構築には影響がないのだろう。

ほとんど全ての数学理論が素朴集合論の上に構築できているように見えるのに、ラッセルのパラドックスのようなものを抱え込んでいるのはこのような理由からだ。集合を「もの」と考えるという簡潔な定義が、自分を定義した述語を自分自身に適用しなくてはならないという自己言及性を発生させていたのだ。

3. 内包公理の問題点

ある性質を共有する要素を集めたら集合になるという内包公理はごく自然な発想だ。それは論理学の排中律と関連している。述語 P(x) はどのような x に適用しても真か偽の値をとるというのが排中律だ。排中律の成立する状況下では、この述語を充足する要素を集めることで自然にものの集まりが定義される。

しかし、その集まりを集合 A という「もの」と考えることで、この A に対しても述語を適用しなくてはならなくなるという想定外の事態が発生する。この A は述語を充足する要素を集める時点では存在しなかったと考えるのが自然だ。この集まりを集合 A というものと考えるのはあくまでも述語を充足する要素の集まりが決定してからのはずだ。しかし、集合 A というものが発生したからには、それに対して述語を適用しなくては、排中律が成立しない。

排中律が成立するためには、集合 A は述語 P(x) を充足しないか、充足するかのどちらかであるべきだ。集合 A が述語 P(x) を充足しない場合は問題は発生しない。述語を充足する要素の集まりに新しい「もの」である集合 A が含まれることはないので、内包的定義による要素の集まりは決定される。

問題は集合 A が述語 P(x) を充足する場合だ。この場合はどうしたら良いのだろうか。ひとつの選択肢は、それまでに集めた要素に集合 A 自身も含めて、集合 A を自分自身を要素として含む集合の一種と考えることだ。最初に述語を充足する要素をあつめたときには集合 A は存在しなかったのだから、それをそれ自身の要素の集まりに入れるのはおかしい話だが、こうすれば、排中律は保たれるし、集合 A の要素も確定できる。

しかしながらラッセルの天才的な洞察のおかげで、その目論見は成立しないことがわかる。「自分自身を要素としない集合の集合」をそれ自身の要素と考えるとパラドックスになってしまったのだ。

それでは、集合 A 自身に述語 P(x) を適用するという自己言及についてはどのように考えればいいのだろうか。もっとも自然な考え方は、内包的定義で集めることができるのは、述語を充足する要素の集まりであって集合ではないと考えることだ。それは一体どういうことなのだろうか。

内包的定義で集合を定義する場合、述語 P(x) を充足する要素の集まりがあり、それに基づいて集合 A が定義される。集合 A の形作られる過程から考えて、集合 A はあくまでも集合 A の要素ではない。しかし、排中律はすべての要素について適用されなければならないので、集合 A が述語 P(x) を充足しない場合でなければ集合 A は述語 P(x) を充足しなくてはならない。

しかし、集合 A が述語 P(x) を充足するのであれば、これは集合 A の要素と一緒に集合を形作るべきである。これは、A が A 自身の要素として含まれるというのではなく、述語を充足する新しく発生した要素 A を含めた新しい集合を考えるということだ。そこで、この集合 A と集合 A の要素を集めて新しい集合 A' を作ることができる。しかし、この場合にも A' が述語 P(x) を充足してしまったらどうだろうか。この場合には新しい要素 A' を含めて述語 P(x) を充足する集合 A'' を作ることになる。しかし、この A'' も P(x) を充足したらどうだろう、このような集合を作っては作り直し、作っては作り直しという操作が無限に続くことになる。

「集合とはものの集まりというものである」という集合の定義は生成的な定義である。現にあるものの集まりから新しい集合というものを作り出してしまうのだ。内包的定義で集合を定義しようとすると、必然的にそれまでになかった「もの」を作り出してしまう。排中律からこの新しい「もの」に対しても述語が適用されなければならないが、この新しい「もの」がつねに述語を充足してしまう場合、無限に集合の作成と再定義が繰り返されることになる。この場合、内包的定義では集合が定義できない。

自分自身を要素としない集合を集めて集合を作ると、どうしてもその集合自身が自分自身を要素として含まないにもかかわらず、自分自身を要素として含まない集合という述語を充足してしまう。このような構造の集まりを内包的定義で集合として定義することはできない。集合の再編成が無限に終了しないからだ。ラッセルのパラドックスは内包的定義で集合としては定義できない集まりを集合として取り扱ったために発生したのだ。

「犬でないものの集合」は「犬ではない」ので自分自身を要素として含む集合と考えることもできるが、上に述べたような議論で、「犬でないもの」をどんなに集めて集合を作っても、その集合はそれ自身の要素として含まれないにもかかわらず「いぬでないもの」になってしまうというラッセルの集合(クラス)と同じ構造の集まりであると考えることもできる。自分自身を要素として含む集合を考えるよりは論理的にも整合性があると思われる。

共通の性質(述語)で要素を集めて集合を定義するという内包公理は自然な発想だ。しかし、素朴集合論の集合の定義が集合という新しい「もの」を作り出す生成的な定義であるため、内包的定義で集合を定義するはずの述語がその集合自身にも適用されてしまうという自己言及が起きる。このため上で議論したような内包的定義で集合が定義できない場合が発生してしまう。ラッセルの述語は、内包的定義のそのような問題をパラドックスという形で見事に浮き彫りにする唯一無二の述語であったのだ。

[PR]
by tnomura9 | 2014-05-31 12:20 | 考えるということ | Comments(0)

抽象的な概念を理解するための3つの要件

今圏論と格闘中だが、こういう抽象的な概念を理解するための3つの要件に気がついた。3つの要件とは、つぎのようなものだ。

1. 理論を論理的に追従できること。
2. 理論の具体例と理論の関係を理解できること。
3. 理論と具体例の意味を理解すること。

第1に理論を論理的に追従できるということが必要だ。理論は論理的な論証で組み立てられているが、その論理の運び方が論理学の法則に従っているかどうかを追従できること。記号論に例えると統語論的な関心だ。その理論が具体的に何をのべているかにかかわらず、論理の運び方に注意を集中する。

しかし、この場合、理論の論理性は理解したものの、その定理が何について述べられているかが分からないということも多い。それは、論理の本質的な形式性から統語論としての推論の正当性ばかりが全面にたちやすいからだ。論理は事象の骨格としての構造は記述するが。具体例という肉体を補充しなければ本当には理解できたとはいえない。

従って、第2にその理論が記号として表しているものの実体としての具体例をあげ、理論の論理性と具体例にあらわれた構造との関連を理解しなければならない。この場合理論という骨格が、具体的な事柄の背後に存在する構造としてどう現れているかを知ることが大切だ。これは、記号論の意味論にあたる。

さらに、第3にはその理論の生まれた背景や、何を目的としてその理論が構築されたのかについて理解することが必要だ。つまり理論の意味を知るということ。これには、理論を論理的に理解することとも、その理論の具体例を理解することとも異なる理解の仕方が必要になってくる。この理論がなぜ必要なのか、この理論が他の事柄とどのように関連しているのか、また、どのような応用が期待できるのかなどのことについて理解しなくてはならない。記号論の語用論にあたる。

もうすこしわかりやすく書こうと思ったが上手く行かなかった。とにかく、理論、具体例、理論の意味(動悸)の3つについて理解したという感じが得られなければ、なんとなくわかったようなわからないような不満感が残ってしまう。また、これらの要件について全て記述した参考書はないことが多いので、どうしても複数の参考書を参照しながら主となる参考書を読み進める必要がある。

さらに、もうひとつ重要なのが、それらについて慣れ親しむということだ。つねにその理論やその周辺のことがらについて考え続けているということだ。それは、脳の非言語的な領域にその理論についての情報を与え続け、自己組織化的に理論に対する理解が成長するのを待つためだ。

フリーセルの解き方のような言語化しにくい技術は脳の無意識の領域がそれについてのスキルを開発するのを待たなくてはならない、これは非言語的な熟練なので言葉として表すのが難しい。しかし、刺激を与え続けることで確実に技術が培われてくる。

数学のような言語的と思われる知識の場合も、推論の中にパターンマッチなどのような非言語的操作が多く含まれている。このような場合はフリーセルなどのパズルとも共通する言語化できないスキルの発達が必要になってくる。これもまた、頻回に問題に接しない限りは進歩しない。

抽象的な概念を理解するためのコツは、論理、具体例、意味、そして非言語的な熟練だ。
[PR]
by tnomura9 | 2014-05-26 02:43 | 考えるということ | Comments(0)

一意的

圏論では、集合で集合と要素と写像で表現していることを射のみで表現することだということが分かってから、圏論の定理の証明の意味が段々わかるようになってきたが、まだまだ圏論独特の言い回しに慣れないので戸惑うことが多い。

たとえば、圏論の定義や証明には射が「一意的に存在する」という表現を取ることが多い。『圏論による論理学 公開論理とトポス』の対象の積の定義を読むと次のようになっている。

定義(積)
次の条件(1)、(2)を満たす対象 A × B が圏 C の中に存在するとき、 A × B は A と B との「積」product と呼ばれる。
(1)A <- π1 -- A × B -- π2 -> B なる2つの矢 π1、π2 が存在する。
(2)任意の C, f : C -> A, g : C -> B について f = π1 . h かつ g = π2 . h を満たす射 h : C -> A × B が一意的に存在する。

これを見ると対象の積について複数の要件が必要だ。それは、次のようになる。

1. 対象 A と 対象 B の積 A × B となる対象が圏 C の中に存在する。
2. A × B から対象 A と対象 B への射 π1 と π2 が存在する。
3. 任意の C, f : C -> A, g : C -> B について、 f = π1 . h かつ g = π2 . h を満たす射 h : C -> A × B が一意的に存在する。

1. については A × B は存在する場合も存在しない場合もあるということだから特に問題はない。存在する場合にその次の要件 2. と 3. を満たす必要があるということだ。

2. も特に問題はない A × B から A と B への射があるということだからだ。

わかりにくいのは 3. の要件だ。どんな f : C -> A, g : C -> B についてもある h : C -> A × B が存在して、それは「一意的」でなければならない。h の例としては集合 A と集合 B の要素の直積集合。つまり x ∈ A, y ∈ B のペア (x, y) を全て集めた集合 P を考え h c = (f c, g c) を考えると定義の条件をみたすことがわかる。h c の値は c, f, g に対してただひとつだけ定まるので、たしかに h は f, g の組みにたいして一意的だ。逆に一意的でない場合はどんな場合だろうかと考えてしまう。

しかし、これはたとえば積対象に A × B × D という3つの対象の直積を考えても定義の射の可換が成り立つことがわかる。つまり h1 c = (f c, g c, z1) と h2 c = (f c, g c, z2) を考えると、

f = π1 . h1 かつ g = π2 . h1
f = π1 . h2 かつ g = π2 . h2

であるにもかかわらず h1 /= h2 である。

定義の射の可換式だけでは、無数の積対象が出現してしまうから、射 h が一意的であるという制限が必要だったのだ。

圏論は確かに集合では要素を使わないと定義できないようなものまで射の可換式で定義してしまうが、可換式だけでは不十分なため射が「一意的である」という条件を付加しなくてはならない。この射の一意性の条件の付加がやや唐突に見えるため、圏の定義がわかりにくく感じられる。

しかし、h が一意的であるということは、射 f と g から h = <f, g> のように新しい射 h を射 f と g から定義することができるという意味もある。射の合成 g . f 以外にも射の演算 <f, g> が利用できるわけだ。これによって、射の演算の内容が豊富になるという利点もある。

結局のところ上の定義の意味は、f : C -> A と g : C -> B なる射があるときに、積対象 A × B というものが存在すれば、h = <f, g> となるような射 h : C -> A × B を考えることができるということを意味していることになる。

この場合定義されるのは f と g から作られる新しい射 h = <f, g> であって、積対象 A × B 全ての要素が定義されるわけではない。射の定義を集合に翻訳するときに注意しなくてはならない点だ。

しかし、さらに上の定義を注意深く見ると、任意の C, f, g についてという表現がある。任意のというのは数学では全てのという表現とほぼ同じと考えていいから、π1 と π2 は圏 C の考えられるすべての C や f, g に対して f = π1 . h, g = π2 . h を満たさないといけない。このような状況ではおそらく積対象は A と B の直積でなくてはならないし、π1 と π2 も A × B の射影でないといけないのだろう。

話がまた戻ってしまうが、集合の圏のように対象の積が対象の直積集合として存在することが明らかな場合は、議論の焦点は h = <f, g> という射 f と g の演算の結果としての射 h の存在の方に置かれる事が多いだろう。
[PR]
by tnomura9 | 2014-05-26 01:36 | 圏論 | Comments(0)

考えるということのリスト

『考えるということ』カテゴリのリストを作ってみた。ずいぶん溜まっているが、あまり賢くなった気がしない。同じテーマについて堂々巡りしているだけのものもある。その時の思いつきで書き散らしているだけだから必然的にそうなるのだろう。自分が書いたものであっても時々他人の目でチェックする必要があるようだ。

パラドックス

ラッセルのパラドックスの意味するもの
床屋のパラドックスのトリック
関数の対角線論法
べき集合の濃度
内包的定義という操作
ものの集まり(集合)というもの
ラッセルの集合の述語
述語
床屋のパラドックスの道具立て
床屋のパラドックスと不動点
床屋のパラドックス
生成規則と判別規則
ラッセルのパラドックス 圏論 不動点
自分自身を要素として含む集合
排中律
内包的定義の適用範囲
内包的定義の問題点 自己言及性について
ラッセルのパラドックス
パラドックスのトリック
パラドックスのメカニズム
パラドックスの秘密
パラドックスの真理表
矛盾とパラドックス
嘘つきのパラドックスと状態
天国の門

実数直線上には一点は存在しない。
1 = 0.999... か?
アリストテレスの解決
アキレスと亀
飛ぶ矢のパラドックス

学習法

本と時間
公案
何となく分かる
何がわからないかが分からない。
付箋に問題を書く読書法
付箋紙速読法
積んどく本の処理のしかた。
なぜ「なぜ?」が大切か
マジカルナンバー3
著者の文脈と読者の文脈
知識の理解の仕方
知的生産の技術とは何か
数学の考え方
学習の報酬
どうして「なぜ?」が必要か。
作文と要約
記憶の絞り込み検索
連想力をつける
必要なものを必要なときに
ヨハン・フリードリヒ・ヘルバルト
ワインの色は何色か
勝ちに不思議の勝ちあり
日本航空の再建
勝ちに不思議の勝ちあり
わかりやすさ
Chrome と Firefox のページ内検索
Windows 7 の全文検索機能はすごく便利だった。
「ファイル名を指定して実行」
HTML文書にもタグ
Windows7 でタグ検索
Windows7 の検索機能
シナリオ(sqlite3)
論理計算
分類する力
キーワード
想定外
Q アンド A マーキング
論理的に考えるということ
太陽の下、新しいものは何ひとつない。
学びて思わざれば
『まんがと図解でわかるニーチェ』を読んだ。
思考力
勝ちに不思議の勝ちあり、負けに不思議の負けなし。
マインドマップ三昧
ひきこもり留学
抽象化の罠
FreeMind : GPL のマインドマップアプリケーション
Windows7 を使う
用語の定義の重要性
神は細部に宿る
英語学習に文法は必要か。
英文のイメージ読解法
テスト学習法
シミュレーション
圏論
メタ思考
理解するということ
神は細部に宿る
explorer(探検家)
無限の可能性
QアンドAで探索する
なぜ
隻手の声
探索
経験
データマイニング
要約のコツ
要約の効用
言語化の効用その2
非言語的知識の伝達
言語化の効用
曰く言い難し
ゆっくり読む
内向性と観察力
ボーっとする
観察力
無念無想
退行
『貧相ですが、何か?』を読んだ
パワーポイント
現実の否認
外部脳としてのパソコン
データ拾い
学習の目的をはっきりさせること
HTMLでリンクを作る
Windows 7 の全文検索の実験
Windows 7 の全文検索を使ってみた。
Windows 7 の全文検索機能
2種類の知識
アイディアプロセッサ
書評のブログ
ギャンブラーの錯覚は本当に錯覚か
『哲学の道具箱』
直感と論理
多様性
銀の匙
理解しがたいフィンランドメソッド
費用対効果比
脳内マインドマップ
Haskell と意味論と統語論
記憶するのを楽しむ
詰め将棋とコンピュータ
五手詰
雑学への恐れ
内的な対話
詰将棋と再帰性
パターン認識と言語
七手詰
統語論とパズル的思考
数学の形式と意味
動かすことによって理解する
直観力その2
直観力
思考のタイプ
アイディアと表現形
数式の意味
将棋と数学
言葉の意味
言葉の本質的抽象性
認識論の二つの視点
知識の彩
認識論としての哲学
脳の自己完結性
言葉の一意性について
なぜ「痛み」は「痛い」のか
統語論と構造
統語論と変換
統語論
同値関係
抽象概念の3要素
抽象概念の習得法
分節作用と排中律
定義
数学する精神
本質を見つける
スキーマと抽象度
概念のはしご
例示
抽象概念
計算術
戦わずして勝つ
抽象的思考
脳のシミュレーション能力
思考実験
自由連想
ループ量子重力理論
哲学は帰納的推論だ
因果関係のパラドックス
中観
中論 原因(縁)の考察
論理の役割
論理という道具
『中論』 時間の考察
中論
龍樹
インド論理学と帰納法
問答法
インド哲学の論理
見えないものを見る
大前提
推理
インド人の論理学
アルカドリン
記憶を失うことのできないショウジョウバエ
アルツハイマー型認知症
昔々ある所に
記憶の種類
主語と述語
文法を意識しながら読む
参考書を読みやすくする4種類のマーキング
『マッチ箱の脳』
「人間が進化できる唯一の方法」というブログ記事
主語に注目する
枠組みで考える
理解するためのマーキング
下線引きでQ&Aを作る
助詞を活用する
目次と本文のスキーマ
接続詞で分ける
定義と詳細のスキーマ
学習法の要点
自分のスキーマを作る。
推論を意識して読む。
二分思考
分割する
頻回に読み返す
「なぜ?」はいつ使うか
チャンクを意識して読む
チャンク
下線の階層構造
中心文と詳細のスキーマ
論理的な型を読む
論理構造を読む
接続詞を丸で囲む
地図を見るように文書を読む
なぜ
道具と使い方
『すごい「勉強法」』
要点
キーワードを考え抜く
キーワードで考える
略語
Google で辞書を使う
プログラミングは語学だ
わかりやすさの秘密
考えるということ
慣れること
なぜ と ならば
下線の引き方
多様性
含意
「わかった」と「手慣れた」
下線の引き方 その2
慣れ親しむ
パターン認識としてのヒアリング
音声イメージ
総量を知る
無理は承知
情報を組み立てる
発想の転換
情報の管理
データの保存
リアルタイムのフィードバック
小さなことからコツコツと
道具
作るか、探すか
知らぬは我が身ばかりなり
共感覚
一次資料
専門家
結晶化
シミュレーション
あいまいさに耐える
実効的な思考法
「どこでもノート」+「思いだし書き」
二兎を追うものは
バカの壁の外
情報は1冊のノートにまとめなさい
手入れをする
忘却との戦い
意欲を持続させること
付箋紙でメモをとる
理解度のチェック
焦点をおさえる
目次とICレコーダー
質問の力
コーネル大学式ノートをICレコーダでとる
思考法が活用できないわけ
思考法
知識ネットワークの解析
連想のスモールワールド
1対1の連想を強固にすること
ぼんやり考える 細かく見る
思考と論理
原点に帰る
睡眠不足
文法解析プログラム
やわらかい頭、効率的な頭
よいプログラムの3条件
階層性のプログラム
意識下の思考
視点をずらす
再帰のちから
思考力
継続性のある開発
レベル10
連想の方向性を図解する
図解をパソコンに保存する方法
「わかった」と「わかったつもり」
Y-Combinator
思考と再帰
実用的なScheme
理想のプログラミング環境
Scheme と連想
Scheme のはじめ方
命題論理で論理記号はなぜ2種類でいいのか。
A⊃Aの証明
高階関数の集合
命題論理の公理系
置き換え
モジュール
高階関数
理解力
下線の引き方
文章に表れる粒度
記号表現と粒度
分かるということ
ソースを読むコツ その2
ソースを読むコツ
プログラム本
書評 - やさしいJAVA
プログラムと思考
点と線
あきらめないで想起する
データベースとしての脳
意識のズームイン、ズームアウト
構造図
要素
連想
思考の構造
複雑さとの戦い
「考えるということ」の構造
「キーワードの影響力の領域
考えるということ
影響力の領域
彼を知り己を知れば
何もしない
思考の3要素
膨らませる
パターン認識
要点をみつける。
「要するに」読書法
段取りをつける
分岐の数を意識する
ア・プリオリ
理解するということ
クラスターとブロック
メタ思考
発見的方法とアルゴリズム
暗黙知と形式知
発見的方法と論理
発見的方法
「箱入り娘」が解けた
パズル
Windows Vista
ゲシュタルト心理学
書評 - トルストイ著 「人生論」
イメージの力
書評 - プラトン入門
序論・本論・結論
分析
種と類
対概念
マジカルナンバーセブン
銀ブラ
評価
一を聞いて十を知る
書評 - アリストテレス入門
モデリング
車輪を二度発明してはいけないのか
書評 - 使える弁証法
質問の効用
過去の遺産
意味わかんない
割り切る
5W1Hの構造分析
書評 - 弁論家について
簡単3択問題作成プログラム
簡単QアンドA作成プログラム qa.rb
書評 - 整理学
書評 - 無理なく続けられる年収10倍アップ勉強法
イメージ読書術
くり返し
学習の戦略
シミュレーション
思考の本質
難問
頭が良くなる方法があるか
誤解
ブラックボックス
モデル
判断力
書評 - カント『純粋理性批判』入門
変化に対応する
「複雑事象の単純化」は誤り
弁証法
考える楽しみ
書評 - 「超」読解力
プログラムの解読はスケルトン図で
過去との関連性で読む
CPUとしての短期記憶
路線図ノート法
著者の意図を探す
連想は2変数関数であるということ
似たものの違いを探す
連想の方向のコントロール
2分岐
幾何学
抽象化
問題提起-結論読み
プログラムと思考(その5)
プログラムと思考(その4)
プログラムと思考(その3)
プログラムと思考(その2)
プログラムと思考
コントロールとエフェクト
論理
気の進まない講演会の聴き方
なぜ
ウォークスルー
脳内関所
5W1H
継続は力
名前
速書き
主語述語読み
京大式カードの再発見
小さな頭に全てが入るわけがないことを知ること
愚かな決定を回避する方法
ルービックキューブ
「分かりやすい表現」の技術
汎用的な道具
ブログノート法
思考力の二つの要素
「分ける」と「あつめる」
フィンランドメソッド
数学脳
役に立つ知識
ブログでリンク集
疑問を持ち続けること
細部にこだわる
括弧思考法
学習とは何か
慣性と陥穽
パターンマッチ
ブラックボックス読書法
連想を妨げる要因
究極の単語帳
意味論、統語論、語用論
アンカーを作る
忘れる効用
連想力をつける
明晰に理解する
事実と意見
チョムスキーの生成文法
記号論
知りたいと思ったことを知る
感覚に注意を払うこと
リラックスすること
ジグソーパズルのピース
見ずに書く
『考える脳・考えない脳』の感想
「である」と「ではない」
究極の速読術、「要するに」
読まずに読む
日本語のシャドーイング
シャドーイング
量を恐れないこと
シャドウイング
「なに」と「なぜ」
どうして太陽は東から昇るのか
参考書は余白を使え
故障の確率
音読の勧め
連想で考える
三階層で考える箪笥思考法
連想の固定
キーワードで検索する。
階層をそろえる。
バカの壁
文書の構造
改良型下線の引き方
時間
思考力のつくゲーム
視野を狭める
KISS
対比
連想の方向
情報は捨てるべきか、捨てざるべきか
思いがけない成功や失敗
下線引きのコツ
学習の動機
たのしみ
本を読む時間
学習法のまとめ
時間
疲労
あれかこれか
えること
キーワード
本の線引きは謎を残せ
場所で覚える
良書
思い出し書き
スキミング
目的を明確にする
質問力
それでも残る勉強法についての興味
大学受験はゲームだ
空のマインドマップ
生涯ノート
ブログの文体
マインドマップ
ドラゴン桜
ノートの意味
ノートの取り方
失敗に学ぶ
論理哲学論考の文番号
語りえぬものについては、沈黙しなければならない
『論理哲学論考』を読む
失われるもの
論理哲学論考
論理とは何か
布団が吹っ飛んだ
考えるということ
考える楽しみ
連想
ポータブルDVD
含意
何が何だ
記号
いつもと違う
[PR]
by tnomura9 | 2014-05-25 11:28 | 考えるということのリスト | Comments(0)

全力延岡 2分30秒フルバージョン

宮崎県延岡市の観光案内。

JKがひたすら走る、走る、走る ...

全力延岡 2分30秒フルバージョン

これも、どうぞ。

畳堤の詩
[PR]
by tnomura9 | 2014-05-21 18:49 | ボーカロイド | Comments(0)

自然数の加法

トポスでの自然数対象の加法のダイアグラムは次の2つの可換な射で定義されている。すなわち、

<idN, ζA> : N -> N × N
+E : N × N ->N
idN × σ : N × N
σ : N -> N

という4つの射について、次の2つの射の可換がある。

1) idN = +E . <idN, ζA>
2) σ . +E = +E . (idN × σ)

これらは普通は対象と射のダイアグラムで表されているが図を書くのが面倒なので、射の可換式で代用した。

N を自然数と0からなる集合 N = {0, 1, 2, ... } と考えると、可換式 1) は、n ∈ N について、

n `+E` 0 = n

つまり、単位元 0 があることを表している。

また、2) の可換式は、

(+1) . (n `+E` n) = n '+E' ((+1) n)

であることを表している。わかりやすいように普通に書くと、

(n + m) + 1 = n + (m + 1)

で 1 を加える計算について結合法則が成り立っていることを示している。そうすると、

(n + m) + 2
= (n + m) + (1 + 1)
= ((n + m) + 1) + 1
= (n + (m +1)) + 1
= (n + ((m + 1) +1)
= n + (m + 2)

となるから n, m, 2 の加法に関する結合法則が成り立つことが言える。したがって、任意の h についても

(n + m) + h = n + (m + h)

が言えることがわかる。

圏論の抽象的なダイアグラムも適当な具体例を当てはめることでその性質がずいぶんわかりやすくなる。
[PR]
by tnomura9 | 2014-05-16 13:04 | 圏論 | Comments(0)

可換

圏論の議論についていくための鍵は「可換」という概念だ。可換というのは単に異なるルートを通った合成関数が一致するということだ。

たとえば対象 A から B への射 f : A -> B と対象 B から C への射 g : B -> C と対象 A から C への射 h : A -> C があったとき、g . f : A -> C と h : A -> C が可換であるというのは、g . f と h が同じ射になるということだ。つまり、

h = g . f

である。同じ射なので、状況に応じて h を g . f に置き換えてもいいし、その逆もできる。なんということもないことだが、圏論の推論はほとんどがこの可換な関数の置換えで議論が進められている。

1. transpose に現れる可換

たとえば圏 C の対象 C と A の直積 C × A から B への射 g : C × A -> B があれば A B の冪 BA について transpose ^g : C -> BAと ev : BA × A -> B なる関数が存在し、^g と idA の積と ev の合成が g と可換である。つまり、

g = ev . (^g × idA)

である。これは g : C × A -> B という直接的な関数を、^g を介することによって、ev : BA × A -> B という関数に置き換えてもよいということを意味している。

関数 g について考えてみると、これはデータ型 C とデータ型 B のデータのペア (c, b) を引数とし値が B 型のデータになる関数だ。

一方 ev の方は、引数データ型 A から値データ型 B への1引数関数を全て集めたものの集合 BA の要素とデータ型 A の要素のペアを評価して データ型 B の値を計算する関数である。つまり、BA の要素 f はデータ型 A の値 a を引数とする関数なので f を a に関数適用させると f a というデータ型 B の値になる。ev はこのような関数適用を実行する関数だ。

これは C 言語の場合、変数に関数のポインタを代入して関数を間接的に呼び出すことを意味している。つまり BA の名前空間に関数のポインタを登録しておき、ev 関数によってデータ型 A の値を データ型 BA の値のポインタが指す関数の引数として与えるということだ。

Haskell では関数は first order object なので値として用いることができるから気がつかないが、C 言語の場合はイベントドリブンのプログラムを作るときに欠かせないテクニックだ。

したがって ^g 関数は (c, a) のペアを引数とする関数を、(f, a) のペアを引数とする関数に変換する働きをしていることになる。c はデータ型 C の値だし、f はデータ型 A からデータ型 B への関数なので意味合いは異なるが、射の可換からこのような変換が可能であることがわかる。

抽象的な圏論のダイアグラムも、このように Haskell のプログラムのアナロジーで考えるとわかりやすい。この場合 f : A -> B のような射 f は Haskell の関数であると考え、A や B などの対象はデータ型であると考えると良い。

2. natural number object にあらわれる可換

次のような例でも可換な関数の置換えの威力をみることができる。トポスという圏のオブジェクトの間に、

1 -{g}-> B -{h}-> B

という再帰的なダイアグラムがあるとき、

1 -{o}-> N -{s}-> N

というダイアグラムを満たす natural number object (NNO) である対象 N をみつける事ができる。そうして、この対象 N から B への射 f : A -> B が一意的に定義できて、この f は N の構造を保ったまま A に写像する準同型写像になる。つまり次のような可換な射の関係がある。

g = f . o
h . f = f . s

ちょっと抽象的になってしまったので具体例を上げてみる。集合の圏では N は自然数の集合だ。つまり、

N = {1, 2, .. }

この時に自然数の各要素に対応する階乗の値の集合を F とする。すなわち、

F = {fact(1), fact(2), fact(3), .. } = {1, 2, 6, .. }

である。このとき、階乗の数列の次の値を求める関数を h : fact(n) |--> fact(n+1) とすると、次のような可換関係があるのがわかる。

1 = fact(1)
h . fact = fact . (+1)

このように対象 N と 対象 F は natural number object のダイアグラムを満たしていることがわかる。このため、(n + 1) の階乗を計算するのに (n+1) を計算してそれに階乗計算の関数 fact を関数適用しても、まず fact(n) を計算してそのあとで h . fact(n) で fact(n+1) をもとめても同じ結果を得ることができる。こういうことができるのも f . fact = fact . (+1) が可換だからだ。

3. natural number object の性質にあらわれた可換

ところで、NNOのダイアグラムのターゲットは 1 -{g}-> B -{h}-> B というダイアグラムだったが、

A -{g}-> B -{h}-> B

というダイアグラムの場合はどうだろうか。この場合は

A -{<idA, ζA>}-> A × N -{idA × σ}-> A × N

というダイアグラムから f : A × N -> B という関数で A -{g}-> B -{h}-> B に変換することができる。

natural number object のダイアグラムの拡張といえるだろうが、具体的にはどんな意味があるのだろうか。いまのところよくわからないが、対象 A も B も N の場合は f の型は次のようになる。

f : N × N -> N

これは自然数のペア (i, j) から自然数 k への写像になるから、自然数の2項演算になる。すなわち、

k = i `f` j

である。したがって、上のダイアグラムは自然数の2項演算を抽象化したもっと範囲の広いパターンを表したものだ。これをどのように圏論で論証するのかを見てみよう。

まず与えられた条件をはっきりさせる必要がある。それは次の2つの射である。

g : A -> B
h : B -> B

トポスは冪の存在する圏であるから次のような射 ev が存在する。

ev : BA × A -> B

ev は f : B -> A 型の関数と A 型の値のペアを引数にして B 型の値を返す関数だ。関数を引数にとるから高階関数になる。Haskell 風に定義すると、

ev f a = f a

となる。この ev と h の合成はやはり BA × A -> B 型の射で、

h . ev : BA × A -> B

である。C × A -> B 型の関数には C -> BA 型の transpose 関数 ^(h . ev) が存在し(transpose の表記はこのブログの恣意的なもので正規のものではないので注意)、これを h' とすると、

h' = ^(h . ev) : BA -> BA

である。また積対象 1 × A を考えると g . π22 は射影) の型は次のようになるので、

g . π2 : 1 × A -> B

この関数の transpose ^(g . π2) を g' とすると、

g' = ^(g . π2) : 1 -> BA

となる。したがって、上の条件下で次のようなダイアグラムが成立することがわかる。

1 -{g'}-> BA -{h'}-> BA

このダイアグラムには NNO が適用できるので次の式を可換とする射 k が一意的に存在する。

g' = k . ζ : 1 -> BA
k . σ = h' . k : N -> BA

但し、k : N -> BA

この k を transpose とする矢 f : A × N -> B を考えると、

f = ev . (idA × k)

となる、

f : A × N -> B

が一意的に存在する。また、

<idA, (ζ . !A)> : A -> A × N 

を考えると、

g = <idA, (ζ . !A)> . f : A -> B

となることがわかる。

この例では k を kを transpose とする f に置き換えるところがポイントだ。
[PR]
by tnomura9 | 2014-05-14 06:27 | 圏論 | Comments(0)

natural number object (NNO)

圏論では自然数の対象(集合)も射で定義できる。自然数の対象を N としたとき次の2つの射が考えられる。ひとつめは N の要素のうちでゼロ要素 zero element を指し示す射 o だ。対象 N の特定の要素を表現するのに圏論では始対象 1 から N への射を用いる。

o : 1 -> N

ペアノの定義では自然数の要素 a があるときその後者 successor がありそれも自然数の要素だ。N の要素 a に対しその後者 successor を割り当てる関数 s は N -> N の射なので、次のようになる。

s : N -> N

これはオブジェクトと射を並べて次のように表すこともある。

1 -- o --> N -- s --> N

このダイアグラムが圏論の方法で表した自然数対象だ。しかし、実はこの表現だけでは不十分なのだ。たとえば N が要素 a だけを含む集合であるとする。すなわち、

N = { a }

だ。このとき始対象の要素を * とし、o : 1 -> N を次のように定義すると

a = o (*)

射 o は始対象 1 から対象 N のゼロ要素 a を指す射である。また、s : N -> N を N の要素 a からそれ自身の a への写像とすると、

a = s (a)

となって、s は対象 N から対象 N への endomap になる。したがってたったひとつの要素 a しか持たない集合 N について定義されたこの o と s もまた、

1 -- o --> N -- s --> N

というダイアグラムを満たしていることがわかる。これでは困るので実際の自然数対象 natural number object の定義はもう少し工夫してある。『圏論による論理学 高階論理とトポス』では自然数対象はつぎのように定義されている。

N をトポス E の対象とし、ζ、δ を各々 ζ : 1 -> N, δ : N -> N なるトポス E の射とする。その上で、1 - ζ -> N - δ -> N が次の条件 [#] をみたすとき、N は自然数対象 natural number object と呼ばれ、 nmo と略記される。

 条件 [#] : トポス E の任意の 1 - g -> A - h -> A なる対象と射に対して、下図を可換にする射 f : N -> N が一意的に存在する。

図を書くのが面倒なので、可換な関数を等号で結んだ式で代用する。

g = f . ζ : 1 -> A

h . f = f . δ : N -> A

最初の可換の式の意味は ζ がNのゼロ要素を表し、g が A のゼロ要素を表しているから、射 f によって N のゼロ要素を A のゼロ要素に変換できることを示している。

2番目の可換の式は N の要素に再帰関数 δ を関数適用した結果の N の要素をさらに f で対象 A の要素に変換したものが、N の要素をまず f で A の要素に変換して、その後にその要素に h を関数適用した結果が一致していることを示している。これはつまり、N の endomap δ と A の endomap h について f が準同型写像であることを意味している。

このダイアグラムが最初のダイアグラムで示した再帰性をしめす endomap を持った任意の A について成立するものが N である。つまり N は再帰的ダイアグラムの親玉というか、原型のような働きをもった対象である。

難しいことを言わなくても自然数の集合は N とみなしてよい。自然数が再帰的ダイアグラムの親方だといったが、それは次のような関数の再帰的定義をみればわかる。

fact 0 = 1
fact n = n * fact (n - 1)

Haskell ではおなじみの階乗の定義だ。ここで ζ : 1 -> N, g : 1 -> N を次のように定義する。

ζ = 0
g = 1

すると、

fact . ζ = g

という可換関係があることがわかる。

また、δ n = n + 1, h (fact(n)) = (n + 1) * (fact n) : N -> N

と定義すると fact n = n * fact (n-1) は

fact (δ (n-1)) = h (fact (n-1))

となるから、

fact . δ = h . fact

であることがわかる。したがって自然数対象 N から fact という関数によって階乗の対象 A の振る舞いが決定されることがわかる。

この例についてみると N = {0, 1, 2, 3, ... } という数列と A = {1, 1, 2, 6, 24, ... } という数列があって、数列 N については δ は自然数の次の数を求める関数で、h は階乗の数列の次の数を求める関数で、fact は自然数に対応する階乗の値を求める関数であると解釈できる。すると natural number object の抽象的なダイアグラムによる定義も至極当然の事のように思えてくる。

何気なく作っている Haskell のプログラムが実は圏論と密接な関係があることがわかると、取り付く島もなかった圏論というものに少し親しみを感じるようになった。
[PR]
by tnomura9 | 2014-05-10 19:46 | 圏論 | Comments(0)

付箋は前小口に貼る

付箋は本文の邪魔にならないように前小口(ページの外縁)に貼った方がいい。そう言うと当たり前だと思うかもしれないが、前小口に貼られて本からはみ出した付箋がたくさんになると結構邪魔になる。本を立てておけず平置きにしておかないといけないし、持ち運びにも不便だ。

したがって、最近は一部が透明になっていて本文に重なっても邪魔にならない付箋が人気のようだ。こうすれば付箋は小口からあまりはみ出さず、じゃまにならない上に、本文が隠れてしまうこともない。

しかし、管理人の場合は、付箋に疑問点や本文について思いついたアイディアなどを書き込んで小口に貼ることで本文の読解のツールにしようと考えているので、透明な付箋も使えない。単なる付箋だけでは役不足な場合を想定しているからだ。

脳のワーキングメモリーは極端に容量が少ないので、思いついたアイディアはすぐに書き留めておかないと失われてしまう。付箋にそのような疑問や思いつきを書き込むのはワーキングメモリーの補助をしてもらいたいからだ。

それではノートに書き込めばいいではないかと思うかもしれないが、本とノートが別々にあると面倒だし、ノートを紛失してしまうかもしれない。本文に付箋がついていれば、本文を開けるといつでも付箋に書き込まれたアイディアを確認することができる。

そういうわけで結局付箋は前小口の余白に貼ることにした。見開きのページの場合は、左のページには左の前小口に、右のページの場合は右の前小口に貼っておく。確かに邪魔になるが、内容が理解できたら付箋を外して別の読書ノートに貼り付けておけばいい。ノートの見開きは書籍の見開きと合わせて本文と同じページに小口の付箋を貼り付けておく。ノートには本のページと見出しくらいを書いておけば便利だ。

最近この方法で『圏論による論理学 高階論理とトポス』を読んでいるが、なぜ数学の本がわかりにくいのかが分かってきた。本文の情報量では理解するための情報が圧倒的に少ないのだ。

ある定理が解説してあったとすると、その定理を理解するためにはそれの土台となる公理や定理の情報が必要になる。さらに、その定理が必要となった経緯や、その定理が体系全体のどの位置にあるのか、その定理の応用や具体例はどのようなものかなどの情報もないと理解できたという気にはならない。そういう知識が本文の簡単な定理の説明の周辺に存在していないと理解できたという感覚を得ることは到底できない。

数学の説明のわかりにくさは、この情報量の極端な不足が原因だったようだ。

これは数学に限らない。一般的に言っても書籍の本文の3倍の余白がその本文を理解するのに必要なのではないだろうか。最近の洋書の参考書は結構余白をとってあるものが多い、それらの著者はこの余白の重要さを身をもって知っているのかもしれない。変なスタイルだなと感じたら、その奥に語られない工夫を感じることも必要だ。

書物の読解には脳のワーキングメモリーを補助するような付箋の存在とそれを貼るための余白が必要だ。これについては思うことがあるが別記事にする。
[PR]
by tnomura9 | 2014-05-08 07:30 | 考えるということ | Comments(0)

本と時間

本の収集家のお葬式は古書店の大きなビジネスチャンスだそうだ。収集されている本は収集家の眼力を反映して貴重な本が多いが、家族にとっては全くの無用の長物だからだ。

若い頃から興味にまかせていろいろなことに首を突っ込んできたが、そろそろ命の残り時間が気になってくると、知識を貯えてもそれが全くの徒労になる日が近いのだろうなと思ったりする。いわゆる、「少年老いやすく学なり難し」というやつだ。

家のあちこちに転がっている本を眺めると、内容はほとんど忘れているが昔心躍らせて読んだSFの文庫本があったりする。なつかしい気持ちはあるが、これを再び読むのに1日はつぶれるなと思うと、なかなか手に取る気にもならない。

いろいろな本を読んできてそれが何かの役に立ったかというと、何の役にも立たなかった事がほとんどのような気がする。もちろん、見えない形で今の自分を支えてくれているのだろうが、それがはっきりとした形で現れることはない。

本と時間との関係をどう考えるかあれこれ思いめぐらしてみたが、今ひとつすっきりとした結論が思いつかない。どんな答えも何かしっくりしないものがあるからだ。それは、全てを飲み込んでしまう死という圧倒的な現実をどうとらえるかで意味合いが変わってくるからだろう。
[PR]
by tnomura9 | 2014-05-07 04:16 | 考えるということ | Comments(0)