Chapter 19

3.5 圏としてのモノイド

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

前に与えたのはモノイドの集合の要素を用いる馴染み深い定義であった。しかしご存知のように、圏論においては集合や元から離れて、その代わりに対象や射について語る。そこで、視点を少し変えて二項演算を集合の中で物を"移動"や"シフト"するものとして適用するということについて考えよう。

例えば、全ての自然数に対して5を加えるという操作がある。これは0を5に、1を6に、2を7にというように移す。これは自然数の集合の上で定義された関数である。いいだろう。我々は関数と集合を持っている。一般にいかなる数nに対してもnを加えるという関数、つまり"nを加えるもの"が存在する。

加えるものたちはどう合成できるだろうか。5を加えるという関数と7を加えるという関数の合成は12を加えるという関数である。つまり、加えるものたちの合成は加法の規則と同値なものとして定めることができる。これもまたよい。足し算を関数の合成によって置き換えることができる。

しかし、待ってほしい。もっとよいことがある。単位元0についての加えるものもある。0を加えることは物事を動かさない、したがって自然数の集合における恒等関数である。

伝統的な加法の規則を与える代わりに、一切の情報を失わずに加えるものの合成の規則を与えることもできるだろう。注意として、加えるものの合成は結合的である、というのも関数の合成は結合的であるためだ。そして、0を加えるというものがあり、これは恒等関数に対応する。

抜け目のない読者は、整数から加えるものへの写像は、'mappend'の型シグネチャ'm -> (m -> m)'の二つ目の解釈から従うことに気づくかもしれない。この解釈は'mappend'は集合としてのモノイドの要素をその集合へ作用する関数へ移すということを教えてくれる。

ここで自然数の集合を扱っていることを忘れ、それがただ一つの対象、一つの点とたくさんの射、加えるもの、であると考えて欲しい。モノイドは一つの対象を持つ圏である。実際、モノイドという名前はギリシャ語で短徳のという意味を持つmonoから来ている。全てのモノイドは単一の対象を持ち射の集合をもち適切な結合の規則に従うものとして記述できる。

文字列の結合は興味深いケースである。なぜなら右に加えるものを定めるか左に加えるもの(あるいは先頭に加えるもの)を定めるかの選択があるためだ。この二つのモデルの合成表は互いに鏡写しになっている。”barを加えた後に”fooを加えることが、”bar”を先頭に加えた後”foo”を先頭に加え、ということに対応していることは容易に納得できるだろう。

全ての圏論的なモノイド、つまり対象が一つの圏、がただ一つの二項演算つき集合としてのモノイドを定めるかどうかという疑問を持つかもしれない。単一対象圏から集合を取り出すことはいつでも可能であることがわかる。この集合とは射の集合である。我々の例で言えば加えるものの集合のことだ。言い換えると、圏\mathbf{M}のただ一つの対象mの射集合\mathbf{M}(m,m)が存在する。また、この集合の上に二項演算を容易に定義できる。二つの要素のモノイドの積は対応する射の合成に対応する要素である。もし、\mathbf{M}(m,m)の二つの要素f, gに対応するものを与えると、それらの積は合成f\circ gに対応する。合成は常に存在する。なぜならそれらの始点と終点は同じ対象であるためだ。そして圏の定義からこれは結合的である。恒等射はこの積についての単位元である。そういうわけで圏論的なモノイドから集合としてのモノイドを常に復元できる。どの点から見ても、それはただ一つの同じものである。

数学者にとってのちょっとしたアラが一つだけある。射は必ずしも集合とならなくてもよいことである。圏の世界では、集合よりも大きなものが存在する。圏であって、任意の二つの対象の間の射全体が集合であるものを局所小という。前に約束したように、私はほとんどこのような微妙な問題を無視するが、記録のために言及するべきだと思った。

圏論におけるたくさんの興味深い現象は、射集合の要素が射つまり合成の規則に従うものとしても見ることができるし、集合の点としても見ることができるという事実から生まれる。ここでは、\mathbf{M}の射の合成は集合\mathbf{M}(m,m)のモノイドの積に翻訳される。

(和訳:@unaoya