このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

積集合と和集合

集合の共通部分(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))/〜 。