言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

圏論の基礎

ちょっぴり背伸びをして、『圏論の基礎』S.マックレーン isbn:4431708723 を読む。一目見て全く歯が立たないとすぐに諦めかけたが、結構高いし(4,700円)諦めるのは勿体無さすぎる。十回くらい眺めていると少しずつ解読する手がかりが見えてきたような気がしたので、分かった事を書く。

圏とは何か? (p 7)


圏と言うのは矢印(arrow)の集まりの事を言う。だけど矢印とは呼ばず、日本語ではプロっぽく『射』と言う。矢印には根っこと先っぽがあるが、根っこと先っぽにはそれぞれ何かがくっついている。そのくっついている何かを『対象』と言う。もしくは、対象のほうに矢印がくっついていると見ても同じ事だ。とにかく、根っこについた物をドメイン dom (domain)と呼び、先っぽについた物をコドメイン cod (codomain)と呼ぶ。難しいのは呼び方だけで、意味は簡単。

さらにこれらの矢印を圏と呼ぶには二つの性質が必要だ。

  • 恒等射 id (identity): それぞれの対象は、自分から始まって自分を指す射を持つ。
  • 合成 (composition): ある射の先っぽについた物が他の射の根っこについているとき、二つの射が全体で射になっていると考える。これを合成という。

注意点

  • 矢印と言うと硬くてまっすぐな線を思い浮かべるが、根と先が繋がっていればどんな形でも良い。また、二つの対象の間に何本も矢印が書いてあっても良い(こういうのをホムセットと言う)。
  • ドメインやコドメインといった用語から、何となく射が関数なんじゃないかとか、対象って集合?と惑わされるが(そしてそういう説明が多い)、ただの矢印と物でしかないと心に留めておいた方が良い。

定義としてはこれだけ?これだけの定義で、こんなに難しくて分厚い本のネタになるとは一体何て事なんだ?!