このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

圏論番外:米田埋め込み (前編)

あるネタ(テーマ)で書くと、しばらく同じネタが続いてしまう傾向がありまして、えー、米田の補題がらみです。(このネタはまったく不人気ですがね。)

内容:

  1. The Yonedaへのスローなアプローチ
  2. 部分圏と充満部分圏
  3. 忠実関手と充満関手
  4. 忠実関手の例
  5. 埋め込み関手と部分圏
  6. 関手圏
  7. 米田関手を探そう
  8. 次回は

参考:

●The Yonedaへのスローなアプローチ

「圏論番外:米田の補題に向けてのオシャベリ」にも書いたのですが、最近の圏論の教科書では、米田の補題を早い段階で導入しています。例え話をすれば、人を山に登らせるとき、断崖絶壁でもなんでも最短経路に沿って頂上まで引っ張り上げて、「どうだ見晴らしがいいだろう」と言う方法ですね。

この方法は効率的ですが、僕は、いきなり引っ張り上げられる感覚が好きになれません。いくつもの経路を使い、ふもとから5合目や8合目まで行くことを繰り返してから頂上に昇ってもいいのではないでしょうか。

というわけで、今回も米田の補題の系(corollary)を直接的に示すことをしてみます -- 米田埋め込み(Yoneda embedding)を丁寧に構成します。米田埋め込みは反変ホム関手をヘビーに使って作るので、「圏論番外:米田の補題の周辺から」の「反変ホム関手」のところを確認しておいてください。また、これから書く内容は、「圏論番外:米田の補題に向けてのオシャベリ 」の「オシャベリはまだ続く(たぶん)」に書いたことを詳しく説明するものです。

説明が少し長くなるので2回に分けます。今回は、ちょっと退屈なんですが、必要となるいくつかの定義を準備します。最後に米田関手を(半分くらい)導入します。次回、米田関手が充満埋め込みであることを示す予定です。

●部分圏と充満部分圏

部分圏については「はじめての圏論 その第4歩:部分圏」で説明しました。圏Cが圏Dの部分圏のとき、|C|⊆|D|となります。また、A, B∈|C|に対して、C(A, B)⊆D(A, B)となります。つまり、対象のペア(A, B)に対するホムセットごとに集合の包含関係が成立しています。

特に、どんなA, B∈|C|に対しても C(A, B) = D(A, B) となっている部分圏C充満部分圏(full subcategory)と呼びます。“充満している”とは、すべてのホムセットが、D内でそれ以上大きくなれない限界までパンパンに膨らんでいる状況です*1

[追記]例えば、全ての有限集合を対象類として、有限集合のあいだの写像を射とする圏FinSetは、集合圏Setの充満部分圏です。しかし、有限集合が対象、単射を射とする圏(けっこう重要な圏です)は集合圏Setの部分圏ですが充満部分圏ではありません。[/追記]

少し考えればわかると思いますが、CDの充満部分圏のとき、Cはその対象類|C|だけで決定されてしまいます。逆に考えてみると、|D|の部分集合Xが与えられると、Xを対象類とするDの充満部分圏Cが一意に定まります。Xから定まるCを、Xから誘導された(induced)充満部分圏と呼びます。「Xから生成された」という用語法もありますが、「射から生成された部分圏」と混乱するので僕は避けています*2

以上のことは、

  • Dの充満部分圏←→|D|の部分集合

と、1:1に対応することを示しています。

●忠実関手と充満関手

一般的な関手F:CDは、集合論写像の寄せ集めと解釈できます。まず、Fの対象パート(Fの|C|への制限)は、|C|→|D| という集合論写像です。実は、|C|や|D|が集合になるとは限らないので、“集合論的”と呼ぶには疑問もありますが、その点には突っこまないことにします。

各A, B∈|C|ごとに、FA,B:C(A, B)→D(F(A), F(B))はホムセット間の写像になります。ホムセットは集合なので、これは間違いなく集合論写像です。関手Fの射パートは、対象で添字付けられた写像の族 {FA,B | A, B∈|C|} だと言ってもいいでしょう。関手Fの対象パートをFObjとすると、Fは次のように分解できます。

  1. FObj: |C|→|D|
  2. 各A, B∈|C| ごとの FA,B:C(A, B)→D(FObj(A), FObj(B))

さて、関手Fが、「すべてのA, Bに関してFA,B単射」を満たすとき忠実関手(faithful functor)、「すべてのA, Bに関してFA,B全射(上射)」を満たすとき充満関手(full functor)と呼びます。

●忠実関手の例

Aが順序集合だとして、A×Aで定義されて真偽値集合B = {true, false}に値をとる部分写像fを次のように定義しましょう。

  1. x = y のとき、f(x, y) = true
  2. x < y のとき、f(x, y) = false
  3. それ以外のとき、f(x, y) は未定義

Aがダイアモンド(◇)のときなどを例としてハッセ図を描いて確認してください。

この部分写像f:A→Bを、関手だと解釈します。そのためには、AとBを圏だと思う必要があります。

A(イタリックに注意)の定義:

  • |A| = A
  • x≦y のとき、A(x, y) = {[x, y]}
  • それ以外のとき、A(x, y) = {}
  • idx = [x, x]
  • [x, y];[y, z] = [x, z]

B(イタリックに注意)の定義:

  • |B| = {0}
  • B(0, 0) = B = {true, false}
  • id0 = true
  • x;y = x∧y (∧は論理and)

fに対応する関手Fは次のようになります。

  • x∈|A|(つまり、x∈A)に対して、xが何であっても F(x) = 0
  • F([x, x]) = true
  • x≠yのとき、F([x, y]) = false

ABが圏、Fが関手であることを律儀に確認してみてください(練習問題)。

A(x, y) = {[x, y]}(x = y のこともある)、または A(x, y) = {} ですが、いずれのときも、Fx,y:A(x, y)→B(0, 0) は単射になります。したがって、関手F:ABは忠実関手です。しかし、充満関手ではありません。

●埋め込み関手と部分圏

前節の例の関手Fは、各FA,Bごとに考えるとどれも単射ですが、|A|が一点集合{0}に縮まっています。Fの対象パートFObj単射のとき、Fは埋め込み関手(embedding functor)と呼びます。

CDの部分圏のとき、包含関手(inclusion functor)は典型的な埋め込み関手となります。また、CからDへの埋め込み関手があるなら、Cは、埋め込みの像であるD部分圏と同一視可能です。

例えば、実数係数の行列圏Mat(「はじめての圏論 その第2歩:行列の圏」参照)から集合圏Setへ、次に関手を考えます。

  1. 対象nに対して、集合Rnを対応させる。
  2. 行列A:n→mに対して、行列が定義する線形写像を対応させる。

この関手はMat→Setの埋め込みとなっており、行列を線形写像と同一視する根拠を与えています。

埋め込み関手は、対象パートが単射である忠実関手ですが、さらに充満関手でもあるとき、充満埋め込み関手(full embedding functor)と呼びます。F:CDが充満埋め込みなら、Fの像であるDの部分圏は充満部分圏となります。Cは、埋め込みの像であるD充満部分圏と同一視可能です。

いまさっき例として挙げた埋め込み関手 Mat→Set は充満ではありません。Set(Rn, Rm)には、線形でない写像がいくらでもあるからです。しかし、ベクトル空間と線形写像の圏Vectを余域とすれば、Mat→Vectは充満埋め込みとなります。よって、MatはVectの充満部分圏と考えてよいわけです。

●関手圏

ここで、関手圏についてごくおおざっぱに述べます。以下の説明だけでは実感が湧かないでしょうが、次のことが確認できれば十分です。

  1. 関手圏は、確かに圏の定義を満たしている。
  2. 関手圏という概念は、“関手/自然変換の計算”や“ものごとの整理”に便利そうである。

CDに対して、CからDへの共変関手の全体をFun(C, D)と書きます。反変関手の全体は、Fun*(C, D)と書くこともありますが、反対圏Copを使ってFun(Cop, D)とも書きます。反変関手と反対圏からの共変関手を同一視すれば、Fun*(C, D) = Fun(Cop, D) です。

F, G∈Fun(C, D)に対して、F⇒G という形の自然変換の全体をNat(F, G:CD)と書きます。圏CDが前もって知られているときは、単にNat(F, G)とも書きます。α∈Nat(F, G)、β∈Nat(G, H) に対して、その結合(正確には縦結合)α|β は、(α|β)X = αXX と定義されます。

以上の状況で、圏CDに対して新しい圏Fを次のように定義します。

  1. |F| = Fun(C, D)
  2. F, G∈|F|に対して、F(F, G) = Nat(F, G)。α:F⇒G のとき、dom(α) = F、cod(α) = G。
  3. F∈|F| に対して、idFはιX = idX で定義される自然変換ι:F⇒F。
  4. α∈F(F, G)、β∈F(F, G) に対して、αとβの結合はα|β。

Fを、圏Cから圏Dへの関手の圏(functor category)と呼びます。Fは、CDから決まるので [C,D]、または DC と書きます*3

定義をズラズラと述べただけなのでピンとこないかもしれません。しかし、役に立つ関手圏の実例は非常に豊富にあるのです。ひとつだけ実例を挙げましょう。2点集合{0, 1}を対象集合として、恒等射以外にただ1本の射:0→1を持つ圏をArrowとします。[Arrow, C]は、Cの射を対象として、Cの可換四角形を射とする圏になります。絵を描きながら確認してみてください。

●米田関手を探そう

やっと、今回の主人公である米田関手(Yoneda functor)の登場です(現時点ではまだ、埋め込みかどうかわからないので、当面は「米田関手」と呼びます)。

C対象Aを固定すると、対象Aによる反変ホム関手が定義できます。この反変ホム関手は、C(-, A)とかA^と書くことにします(「圏論番外:米田の補題の周辺から」参照)。

さて、対象Aから定まる反変ホム関手A^は、CSetという反変関手です。ということは、A^∈Fun(Cop, Set) ですね。Fun(Cop, Set)は、関手圏[Cop, Set]の対象類でしたから、(-)^ は、|C|→|[Cop, Set]|という写像になります。

(-)^ を対象だけでなくて射にもうまく定義できれば、(-)^:Cop→[Cop, Set] という関手に拡張できるのではないでしょうか? 米田関手とは、このアイディアに基づいて構成された Cop→[Cop, Set] という関手です。

  • C対象A |→ 反変ホム関手A^:CSet
  • Cの射k:A→B |→ 反変ホム関手のあいだの自然変換k^:A^⇒B^

射k:A→Bに対する自然変換k^は、ほとんど必然的とも言える定義を持ちます。射kに対して、A^ = C(-, A) から B^ = C(-, B) への文字通り自然な自然変換があります。探してみてください。自然変換k^が見つかれば、それが米田関手の定義を与えます。

●次回は

次回は、米田関手の輪郭をもっとハッキリとさせて、米田関手が充満埋め込みであることを示します。埋め込みであることは、事実を地道に積み重ねれば出ます。充満性を示すには、ちょっとトリッキーな(と思える)計算をします。

*1:逆に、それ以上はホムセットを小さくできない限界まで縮んでいるとき離散部分圏です。

*2:「誘導された」は、グラフ理論の「誘導部分グラフ」という用語法と整合します。

*3:関手圏は、圏の圏における指数対象なのです。