らんだむな記憶

blogというものを体験してみようか!的なー

圏論(2)

さて、categoryの定義を引用したので遊んでみたい。

categoryとはこの定義を満たすものであれば何でも良い

というふうに訳してみたが、何でも、つまり anything ということで、arrowとして写像ですらないものを考えてみたい。そのために敢えて「射」などとは訳さなかった。

objects: $1,2,3,\cdots$
arrows: $(1 \le 2),((3 \le 5) \land (5 \le 4)),\cdots$

を考えたい。$\land$は論理積(AND)だ。
この段階では、薄らとcategoryになりそうだと思っているだけで、記事は何度も編集して辻褄を合わせながら結論に向かっていく。*1

arrow $(1 \le 2)$は$1$をdomainとし、$2$をcodmainとするようなもので真偽値(boolean)の形で真(true)を出力するようなものと考えている。
arrow $(3 \le 2)$は$3$をdomainとし、$2$をcodmainとするようなもので偽(false)を出力するようなものと考えている。
"式" の一番左に現れるobjectをdomainとして、一番右に現れるobjectをcodomainとしてみている。
定義上、arrowが出力値を持ってはならないなどとはなっていないので合法だ。
ちょっと違和感があるが、ここで$f(A,B)$で$(A \le B)$の真偽値を返すようなarrowの出力値としておこう。arrowには他の複雑なものもあるが、その複雑な式の結果の真偽値として解釈する。

objectsは自然数のごとく書いてみたが、実数でも複素数でも良いと思う。複素数の場合、比較できるパターンだけについてarrowを考えれば良い。まぁ、この後の要請でこけるので複素数は本質的には難しいのだが。そして数どころか、$\le$ の部分を記号論理学(数理論理学)の真理函数にしてしまえばobjectsは「命題」でも良いだろうな。
と書いてなんとなく、見えてきた。論理学と圏論の繋がりはこれのような気がする。

次にcomposite(合成)について考えていきたい。compositeも未定義語にしても良いのだが、いかにも合成なので、これにはキモチとして「合成」という和訳を括弧付きでつけてみた。

$f:a \to b,\ g:b \to c$が与えられた時、そのcomposite $g \circ f:a \to c$を与えたい。これについて、
\begin{equation}
(g \circ f)(a, c) = f(a,b) \land g(b,c)
\end{equation}

としてみたい。$g \circ f$の略記として$g \land f$と書けば、結合則の確認で大変なご利益が出てくる。
$f:a \to b \iff (a \le b)$ で $g:b \to c \iff (b \le c)$ なら、
$g \circ f:a \to c \iff (a \le b) \land (b \le c)$ ということだ。
こういうことになってくるので、本来は記号論理学のように再帰的な定義で構成しとかないとならないと思うが、ま、雰囲気的にこれでcompositeが構成できるだろう。

identity arrowを見よう。$1_a:a \to a$は$(a \le a)$で定めてしまい、常にtrueを返すものとしておきたい。
この作り方から法則「単位」については、identity arrowとのcompositeの部分でtrueとの論理積をとることになるが、どんな $f$ とのcompositeでも $f$ の真偽値がcompositeの出力値となる。*2

残るは結合則だ。といっても。略記して$h \land (g \land f) = (h \land g) \land f$と書いてしまえば、まぁ、成立するだろうことは分かる。
本来は$(1 \le 2) \land (4 \le 3)$も式としてはアリなのだが、compositeの定義でcodomainとdomainの一致を求めているので、いますぐにはこのケースは考慮できそうにない。($1 \to 3$のarrowと呼ぶにはちょっと厳しい式だ)

一切厳密には確認していないが、上記のような数をobjectsとし、その数同士の比較を行うことから発生する真偽値を返す式をarrowsとする場合、これらのデータはcategoryをなすようであることが分かった。
$1 \to 2$は1を2に写すわけではないので、arrowは写像ではない。なので、あまり「射」と呼びたくなかった。

適当に書いてみたが、なんとか集合と写像ではないようなcategoryの例が作れたようで良かった。しかも、うっすら記号論理学や計算機との関連も見えた気がする。途中段階で自分なりの例を構成したり、反例を探すのは勉強んなるような気がする。

categoryとはこの定義を満たすものであれば何でも良い

玩具が増えたかもしれないな。

*1:定理を作る場合に、欲しい結論を出せるような十分条件を試行錯誤で練り込んで作るようなものだ。自然な十分条件や新しい発展的な概念を含む十分条件になれば、体裁を整えて発表すればいい。

*2:こうしたいので、比較演算子に等号を含めて、上記のようなidentity arrowを考えたのだが。最初は等号なしの比較演算子で構想を練っていたが、ここで躓いたので等号を入れた。