積集合と和集合
集合の共通部分(intersection)、記号は∩(キャップ)。
- A∩B = {x | (x∈A)∧(x∈B)}
ミート(meet)と呼ぶこともある。積集合と呼ぶこともある。共通部分の定義に使う連言(論理AND)を論理積と呼ぶことがあるので、それにあわせて「積」と言いたいこともあるし、ブール代数の演算を積(掛け算)と和(足し算)と呼ぶときも、「積」となるかもしれない。が、「積集合」って、最近はあまり聞かないな。
集合の合併(union)、記号は∪(カップ)。
- A∪B = {x | (x∈A)∨(x∈B)}
ジョイン(join)と呼ぶこともある。和集合と呼ぶこともある -- これは今でも割と使うかも。
「積集合、和集合」のペアはバランスがいいと思うが、意外に使われない。そのひとつの理由は、積には直積(direct product)の意味もあるからだろう。直積の記号は×(クロス)。
- A×B = {(x, y) | (x∈A)∧(x∈B)}
要するにペアの集合。一般化すると、長さnのタプルの集合。
集合の直和(direct sum)は、AとBの共通部分がないときの合併として定義される。記号は+(プラス)が多いが、他の記号が使われることもある。
- A+B = (A∪B ただし、A∩B = 空)
この定義は、条件付きでなんか中途半端な感じがする。「A∩B = 空」じゃなくても使える定義は:
- A+B = ({1}×A)∪({2}×B)
{1}×A と {2}×B の共通部分がないことは保証される。この定義だと A+B ⊆ {1, 2}×(A∪B) となる。
{1, 2}×(A∪B) に埋め込む定義もなんか人工的な感じがする。スッキリしたいなら、集合圏の圏論的直和の定義を採用する。(直積もそうだが)圏論的直和は具体的な作り方を捨象している。作り方を固定すると、その固定の仕方は恣意的になるので違和感がある(かもしれない)。
集合圏Setの対象Uを1つ選んで固定して、オーバー圏 Set/U を考える。Set/U のなかでの始対象、終対象、直積、直和を考えるのは良い練習問題。
さらに、Set/U のなかのモノ射だけを選んだ部分圏 Mono(Set/U) を考える。ここにも始対象、終対象、直積、直和がある。トポスの定義で出てくるサブオブジェクト Sub(U) は Mono(Set/U) から構成される。f:X→U mono、g:Y→U mono に対して、同型 u:X→Y があれば f〜g という同値関係を考えて:
- Sub(U) := (Mono(Set/U)/〜)
外側のスラッシュは商集合を作る記号。もっと正確に書けば、圏Cの射の集合をMor(C)として、Mor(Mono(Set/U))/〜 。