反対圏の実現
このエントリを書いた理由は本編に書いてある。
oppositeの訳語は「反対」を使う。
反対圏の定義
圏Cの反対圏Copは、Cの矢印を(まったく形式的に)逆向きにしたものに過ぎない。つまり、Obj(Cop) = Obj(C)であって、A, B∈Obj(C)に対して、Cop(A, B) = C(B, A)として定義される。f:A→B in Cop とは、f:B→A in C。と、それだけのこと。Copで考えたfをfopと記すことにする(向きが逆なので、一応別物とみる)。
idAは、Cで考えてもCopで考えても同じ。compositionは、fop;gop = (g;f)op で定義する。Copの単位律と結合律はCのそれから自明に従う。
と、あまりにも形式的で拍子抜けする。定義から (Cop)op = C となる。ここでイコールは圏同値や圏同型ではなくて、ほんとに同じとみてよい。(もっとも、大きな圏が“同じ”とは、あまり確信が持てない言明ではあるが。)
さて、対応Δ:C→Copを、Δ(A) = A、Δ(f) = fopで定義する。あきらかに、Δ(idA) = idΔ(A)、Δ(f;g) = Δ(g);Δ(f)だから、Δは反変関手。同様な定義で、Cop→C方向の反変関手を∇とする。
- Δ;∇ = Cのidentity
- ∇;Δ = Copのidentity
つまり、Δと∇を通して、CとCopは反変に圏同型(当然に圏同値)である。と、これはバカみたいなことだが、伏線。
反対圏の実現
圏CとDがあって、Dが必ずしもCopとは限らない状況で、反変関手の対Δ:C→D、∇:D→Cがあって、Δ、∇によりCとDが反変に圏同値(条件をゆるくしている点に注意)になっているとする。もし、Dが具体的に構成された圏なら、DはCopの具体的な実現といえるだろう。
もっとも、「具体的」という語に明確な定義はなくて、心理的な効果しかないかもしれない。形式的なCopがとらえどころがなく、存在感が薄いので、“心理的な効果=安心感”が欲しくなる、という事情がある。
自分自身が反対圏の実現である例
Vectが有限次元ベクトル空間の圏(係数体は適当に固定)だとして、Vectopの実現としてVect自身がとれる。Δ:Vect→Vectを、Δ(A) = A*(双対空間)、Δ(f) = f*(双対写像)とする。∇はΔと同じものとする。
δを、canonicalに定義される同型δA:(A*)*→Aの族だとして、このδを使って Δ;∇≒Id_Vect、∇;Δ≒Id_Vect という自然同型が作れるから、VectとVectは反変に圏同値。
つまり、Vectのなかで双対空間/双対写像を考えると、Vect自身がVectopを実現していると言える。Vectのなかに最初からVectopの構造も(ひっくり返しに)重なっている、とでも言おうか。
Setの反対圏を実現するあやしい方法:準備
「基礎論的にどうよ?」という疑問があるし、コジツケみたいな作為的な方法なのだが、Setに対するSetopを“具体的に”実現する方法がある。まずは束論からの準備。
以下、束は完備束のことだとする。束の最小元を0、最大元を1で示す。a∈L(Lは束)がアトムだとは、「a≠0 であり、x≦a ⇒ (x = a または x = 0)」のこと。ようするに、「アトムとは0の次に小さい元」。
束Lにアトムが十分あるとは、任意のx∈Lが、X⊆(Lのアトム)を使って x = ∨X と書けること。以下、Lのアトムの全体はAtom(L)と書く。
束(完備束)の準同型は、f:L→Mであって、任意のX⊆Lに対して、(ラフな表現を使えば) f(∨X) = ∨f(X)、f(∧X)=∧f(X)を満たすものだとする。さらに、b∈Atom(M)に対して、b≦f(a) となるa∈Atom(L)が必ず存在するようなf:L→Mだけを考えるとする。いま言った性質は、(仮にだが)アトム被覆性と呼んでおこう。
なんか天下り(実はご都合主義)の定義になってしまったが、アトムを十分持つ完備束とアトム被覆性を持つ束準同型の全体は圏をなす。これを確認するのは容易だろう。この圏をAtomfulLatとする。
SetとAtomfulLatの反変圏同値
状況説明で疲れた。あとはサッサといこう。
Set上の反変ベキ関手をPow*と書く。Pow*:Set→Setは反変のendofunctorだが、これがAtomfulLatを経由して分解することを示す。つまり、AtomfulLat→Setの忘却関手をUとして、Pow* = Q;U という反変のQが存在する。このようなQ:Set→AtomfulLatを具体的に構成する。
まずは、集合Aのベキ集合Pow(A)が次の性質を持つことを示す。
- Pow(A)は完備束である。
- Pow(A)にはアトムが十分にある。
f:A→Bに対するPow*(f)は、fの逆象により定義される。Pow*(f):Pow(B)→Pow(A)が次の性質を持つことを示す。以下、Pow*(f)を単にf*と書く。
- Y⊆Pow(B)に対して、f*(∨Y) = ∨f*(Y)
- Y⊆Pow(B)に対して、f*(∧Y) = ∧f*(Y)
これは、たとえばf*(∨Y)を具体的にf-1(∪iYi)のように書き下して確かめればよい。アトム被覆性を具体的に書けば次のとおり。
- {a}∈Pow(A)が単元集合のとき、{a}⊆f-1({b})となるb∈Bが存在する。
以上から、Pow*はAtomfulLatに値をとるとみなしてよい。このようにみなしたPow*を改めてQと書けば、Q;U(Uは忘却関手)は通常の反変ベキ関手(Set上のendofunctor)となる。
さて、SetとAtomfulLatの圏同値を示すために、関手R:AtomfulLat→Setを定義する。AtomfulLatの対象Lに対して、R(L)=Atom(L)とする。アトム被覆性を持つ束準同型f:L→Mに対して、Atom(M)→Atom(L)を次のようにして定義できる;b∈Atom(M)に対して、アトム被覆性から、b≦f(a)(≦は束順序)となるa∈Atom(L)が存在する。このようなアトムaは実は一意である。よって、その一意的なaを選べばよい。一意性を次に示す。
b≦f(a)、b≦f(a')として、a≠a'と仮定しよう。aもa'もアトムなのだから、a∧a' = 0となる。f(a∧a') = f(0) = 0、これと、f(a∧a') = f(a)∧f(a') より f(a)∧f(a') = 0。最初の仮定「b≦f(a)、b≦f(a')」は、b≦f(a)∧f(a') を意味するが、f(a)∧f(a') = 0なのだからb = 0。しかしこれは、bがアトムであることに矛盾する。よって、a≠a' は否定され、a = a'。
いま述べた方法で、R(f):Atom(M)→Atom(L)を定義すると、RはAtomfulLatからSetへの反変関手となる。
R;Qが、AtomfulLatのidentityと自然同型になることを示すには、Pow(Atom(L)) ≒ L とかを束論的に示さないといけないが、束論の練習問題にちょうどいいでしょうから、後は任せた(って誰に?)。ヒント:x∈Lは、適当なX⊆Atom(L)を使って x = ∨X と書けるのだけど、xに対してアトムの集合Xが一意に定まることを示せ。
で結局、AtomfulLatは、Setの反対圏Setopの具体的な実現とみなせることになったわけだ。ゴタゴタした割には、結果はあまり面白くもないのだけど、ゴタゴタやったがために、(形式的なSetopに比べ)実在感が高いAtomfulLatを手でいじった感じが残る、という効果はあったでしょう。やっぱりつまんない? あ、そうですか。
最後に
なんか質問あれば、僕は明白に答えるように努力するし、たぶん答えられると思いますよ。