今回の記事で圏論シリーズは一応終わりだ。その先のことは管理人が理解できていないのと、これまでの記事でも、圏論は全てのことを射 morphism, arrow で表現すると考えれば圏論で何のことを論じているのかがわかりやすい(かもしれない)ということを示すことができたと思うからだ。
さて、最終回はサブオブジェクト・クラシファイアー subobjict classifier についてだ。classifier の意味をネットで調べてみたが、選別機というのがいちばんぴったりする感じがした。subobject classifier だから部分対象(集合の圏 Set の場合は部分集合)を選別する機械だ。集合Bの部分集合をいろいろと調べた時に、その部分集合が一定の条件をみたすかどうかを選別する機械だ。 集合 B の部分集合を指定するためには、圏論のお約束で部分集合を指定する別の集合 A から集合 B への mono 射 f で表すことになる。圏論には射しかないのでこんな面倒くさいことをする。 f : A >--> B これを選別するためにはどうしたらいいだろうか。これは、ある対象 Ω の要素が選別の結果を反映するような特性射 xf を定義して、部分集合を表す f との結合を作ればいいのだ。つまり、 xf : B -> Ω をつくれば、射の合成 xf . f : A -> Ω は Ω に選別結果を反映させることができる。これで無事に対象 B の部分集合の選別を行う射を設計することができた。しかし、これは概念設計ができたというだけのことで、この特性射 xf がどのように働くかはこれだけではわからない。特性射の動作設計を行わなければならないのだ。 それが次のサブオブジェクト・クラシファイアーの定義になる。 定義: 圏 C に終対象 terminal object である 1 が存在する場合、次の条件 「#」を満たす射 t : 1 -> Ω を伴った対象 Ω は、C の「サブオブジェクト・クラシファイアー」 subobject classifier と呼ばれる。 条件「#」:任意の mono f : A >--> B について、次の射の配置図がプルバック pullback になるような射 xf が一意的に存在する。 f : A >--> B ! : A -> 1 t : 1 -> Ω xf : B -> Ω なおこの xf は mono f (i.e. 対象 B の部分対象 A) の特性射 character と呼ばれる。 xf . f については上で述べた。対象 B の部分集合 f を選別する射だ。! は対象 A から終対象への唯一の射だ。また t は終対象から Ω の特定の1個の要素を指定する射だ。 上の射の配置図が pullback になるというのだから xf . f と t . ! は可換だ。すなわち、 xf . f = t . ! だ。右項の射がこの可換な射は対象 A から対象 Ω のただひとつの要素への射であることがわかる。またこの可換な射の図式がプルバックになることから、A は圏C の Ω の特定の要素に対応する対象のうち最も大きいもの limit であることがわかる。 厳密なところは参考書にまかせるとして、要するにサブオブジェクト・クラシファイアー Ω の要素は、対象 B の部分集合が特定の条件を満たしているかどうかの選別機の出力を表している事がわかる。また、対象 B の部分集合は f で代表することができるし、f の選別結果は xf . f という合成射の値である Ω の要素で表される。 こういう選別機が登場するのは論理学の場合だ。すなわち集合 B が真理集合で、特性射 xf は命題関数、サブオブジェクト・クラシファイアー Ω は真理値の集合になる。 また、論理学でなくても、判別関数はいろいろな分野でお目にかかる。圏論の面白いところはこのようないろいろな分野で現れる判別関数の構造を xf . f = t . ! という射を用いた簡潔な表現できちんと表現できることだ。 圏論というとなにか抽象的で近寄りがたい印象を持っていたが、要するに「全ての構造を射のみで表すこと」がその目的だという視点で見ると、結構プログラミングにも応用できることが多いのではないという気になってきた。 追記 このシリーズの記事の参考書の表題は『圏論による論理学 高階論理とトポス』だ。高階論理は読んでみればわかるがほとんど Haskell そのものだ。また、トポスは、終対象、対象の積、冪対象、サブオブジェクト・クラシファイアーを備えた圏のことだ。これも Haskell だ。
by tnomura9
| 2014-04-20 10:21
| 圏論
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||