Sun Mar 17 2019

日記

トポスが面白い. 集合を使って fuzzy な logic が出来る. ところで集合よりもリッチな表現として層があり、そして圏がある. トポスは層全体からなるような圏(実際には一般の圏で何でもいいみたい)でロジックをやる.

トポスの面白さの片鱗をお手軽に味わえる何かを書きたい.

対象(「対象」という語は適宜「集合」に読み替えて良い) \(A\) について, \(c\)\(A\) の元であるとは, \(c\)\[c \colon 1 \to A\] なる射であること. これを \[c \in A\] と書く.

またここで \(1\) とは次のような対象(集合)のこと. 任意の対象 \(X\) について \(X \to 1\) なる射がちょうど一つだけ存在すること. その射のことを \(!\) と書く. \[! \colon X \to 1\]

今わたしは, ちょうど1つだと言った. 従って \(1 \to 1\) なる射はちょうど \(!\) しかない. \(! \in 1\) であって, 他に元はない. \(1\) は対象であるが先に述べたように「集合」と読み替えると, 唯一の元を持つ集合だから, ちょうど 単集合 と呼ばれる概念と一致する.

\(f\) が mono であるとは, 任意の \(g,h\) について, \[fg = fh \implies g=h\] が成立するもののことを言う. ここで \(fg, fh\) は合成.

\(A\)\(B\) の部分対象(部分集合)であるとは, ある mono \(A \to B\) が存在することを言う. この部分対象の関係を \[A \subset B\] と書く. またこの存在する mono のことを \(i\) と書く. \[i \colon A \to B\]

というわけで, \(\in\)\(\subset\) を定義した. 今, \(c \in A\) であって \(A \subset B\) であるならば, \(ic \in B\) である. そして \(i\) は mono なので, \(A\) の2つの元 \(c,d\) について \[c \ne d (\in A) \implies ci \ne di (\in B)\] が言える. つまり \(A\) で異なる元は \(B\) でも異なる. \(ci\)\(di\)\(i\) を省略してそのまま \(c,d\) と書いてしまうのが普通だろう.

  1. 積の定義を書く.
  2. \(\delta_A \colon A \to A \times A\) を書く.
  3. classifier を書く.
  4. \((=)_A = cl(\delta_A)\)

\(=\) を定義するだけでもここまで書く必要がある (元はどうでもよかった).