Chapter 22

5.1 始対象

さのたけと
さのたけと
2021.05.20に更新

簡単な形状は単一の対象だ.明らかに,与えられた圏の中の対象と同じ数だけこの形状の実体がある.この中から一つを選ぶとすると,とても選択肢が多い.何らかの順序付けが必要で,その一番目の対象を見つけたいとする.用いることのできる唯一の手段は射である.射を矢印と考えると,圏の一方の端から他方への全体的な正味の流れを持ちうる.順序付けられた圏ではこのことは正しく,例えば半順序を持つ圏などがその一例だ.もし対象 a から b への矢印(射)が存在するなら,ab よりも先行するとすることで,対象の先行の概念を一般化できる.そこで,始対象 (initial object) を全ての対象への矢印を持つ対象として定義する.明らかに,そのような対象が存在する保証はないがそれは構わない.より問題なのは,そのような対象が無数に存在するかもしれないことで,そのような場合には再現率は上がるが適合率は下がる.この問題を解決するために,順序付けられた圏の性質を用いる.そのような圏では,任意の二つの対象の間には高々一つの矢印しか存在しない.すなわち,一方が他方よりも少ないか,それとも等しいかのどちらかである.このことを用いると始対象は以下のように定義できる.

始対象とは圏の中の任意の対象への射を一つだけ持つ対象である.

ところが,この定義は(もし存在したとしても)始対象の一意性すら保証しない.だが次善の,同型を除く (up to isomorphism) 一意性を保証する.同型は圏論でとても重要なので,後ほど簡単に説明する.一旦は,同型を除く一意性をもって始対象の定義を認めることとしよう.

例を挙げよう.半順序集合の始対象はその最小要素である.例えば正と負の全ての整数の集合で,「
等しいかそれ以下」という関係を射として持つもののように,いくつかの半順序集合は始対象をもたない.

集合と関数の圏では,始対象は空集合である.空集合はHaskelのVoid型にあたり(C++には対応する型がない),Voidから任意の他の型への一意で多態的な関数はabsurdと呼ばれることを思い出してほしい.

absurd :: Void -> a

これはVoidを型の圏の始対象にする射の族である.

(和訳:@dshin)