プログラミング/圏論入門 の履歴(No.1)

更新


公開メモ

概要

前から気にはなっていたのだけれど、

https://ktgw0316.github.io/milewski-ctfp-markdown/

こちらにフリーの日本語テキストがあると聞いて読み始めました。

→ 全然理解できなかったので、いろいろと調べながら分かった範囲をまとめようとしています

目次

準備: 「クラス」 について

圏論では『「要素の集まり」ではあるけれど「集合」とは呼べないもの』を扱うことがある。これは、ラッセルの逆説として有名な話、「自分自身を含まない集合全体」を集めてそれを集合であるとすると矛盾が生じる。という事実と関連している。 何でもかんでも「要素の集まり」を「集合」と言ってしまうとまずいことが起きるのだ。

そこで「集合」よりも広い意味で「要素の集まり」と言いたいときの用語として数学的な専門用語である「クラス」が使われる。これ、数学的に定義をしっかりしようとすると結構ややこしいのだが、「クラス」は「集合」と「要素の集まりだが集合とはみなせないもの(真のクラス)」の両方を含む概念。集合はクラスである一方、クラスではあるが集合ではないもの(真のクラスと呼ばれる)が存在する。

以下に出てくる「クラス」という用語は多くの場合「集合」に置き換えられるけど、そうでない場合があるので念のため「クラス」と書いている、という程度で読み進めるといい。

圏(category)の定義(公理)

圏 $\mathcal C(O, hom(\cdot,\cdot))$ と書くとそれは以下を意味する。

  • $O$ は対象(object)と呼ばれる要素のクラス(集まり)
  • 任意の2つの対象 $A, B\in O$ を順序付きで取り出すと、そこに「射(morphism)」のクラス(集まり) $\mathrm{hom}(A,B)$ が付随する
  • さらにこの「射」に対して下で述べる公理が成り立つ

と言ってもなんだかわからないのだが、 「対象」同士を結ぶ「矢印」をイメージするのが分かりやすい。

この図では黒丸が「対象」、矢印が「射」を表す。


Counter: 162 (from 2010/06/03), today: 3, yesterday: 16