taretmch / hamcat

Category Theory for Programmers の勉強記録
https://criceta.com/category-theory-with-scala/
Other
17 stars 0 forks source link

12章 極限と余極限 #25

Closed taretmch closed 3 years ago

taretmch commented 3 years ago

圏論において、全ては全てとつながっていて、全てのものはあらゆる角度からみることができるように思えます。積の普遍的構造を例にとります。我々はすでに、関手と自然変換についてまなびました。積の構造をより簡潔に、そして可能であれば一般化することはできるでしょうか?やってみましょう。

積の構築は、積をとりたい2つの対象 a と b を選択するところから始まります。しかし、「対象を選択する」とは何を意味するのでしょうか?この操作を圏論的な概念に落とし込むことはできるのでしょうか?2つの対象は、あるパターンを形成します。とても簡単なパターンです。我々はこのパターンをある圏、とても簡単な圏に抽象化することができます。それは、2 と呼ばれる圏です。2圏は、ただ2つの対象 1 と 2 を持ち、恒等射以外の射をひとつも持たないような圏です。そして今、圏 C の2つの対象の選択を、2圏から圏 C への関手 D を定義することに置き換えることができます。関手は対象を対象に対応させるので、その像はただ2つの対象です(あるいは、関手が対象を崩壊させる場合には1つかもしれない)。関手はまた射を対応させますが、この場合は恒等射を恒等射に対応させるだけです。

この方法の良いところは、圏論的な概念で成り立っていることです。「対象を選択する」のような曖昧な説明を避け、ストレートに表現できます。ちなみに、2つ以上の対象からなる圏を使わないわけにはいかないので、このパターンの定義は容易に一般化されます。

しかし、続けましょう。積の定義における次の段階は、積の候補となる対象 c を選ぶことです。同じように、単一圏からの関手という概念でこの選択を言い換えることができます。そして実は、もしカン拡張が使えるのであれば、カン拡張がまさにこの役割を担います。しかしまだカン拡張について学べていないので、他の方法を使います。すなわち、2圏から C への定関手Δを使います。圏 C の対象 c の選択は、定関手Δc で行われます。Δc は全ての対象を c に写し、全ての射を c の恒等射 idc に写すことを思い出してください。

今、我々は2圏から C への2つの関手 Δc と D を持ちます。そのため、これらの間の自然変換を考えることは全く自然なことです。2圏には2つの対象しか存在しないので、自然変換は2つの成分を持つでしょう。対象 1 は Δc によって c に写り、D によって a に写ります。したがって Δc から D への自然変換の 1 成分は、c から a への射になります。これを p と呼びましょう。同様に2つ目の成分は c から b への射 q となります。しかしながら、これらは積の定義で用いた射影と全く同じものです。よって、対象と射影の選択について考える代わりに、関手と自然変換をとってくることについて考えれば良いです。この簡単な場合では、自然変換の自然性は明らかに成り立ちます。2圏には恒等射を除いて射が存在しないからです。

2圏以外の圏(例えば、恒等射以外の射を持つ圏)に対してこの構造を一般化すると、Δc から D への変換に自然性が課せられます。我々は、そのような変換を錐 (cone) と呼びます。Δ の像が錐の頂点であり、錐の側面が自然変換の成分によって形成されるからです。D の像は錐の底面を形成します。

一般に、錐を構築するためには、パターンを定義する圏 I を使います。I は小さく、しばしば有限な圏です。

I から圏 C への関手 D をとり、この関手(あるいはその像)をダイアグラムと呼びます。 image

錐の頂点として、C の対象 c を選びます。我々はこの c を、I から C への定関手 Δc を定義するために使います。 image

したがって、Δc から D への自然変換は、錐を形成します。有限の I に対して、自然変換は c をダイアグラム(D による I の像)に繋げる射の束になります。

image

自然性は、このダイアグラムにおける全ての三角形(a - c - b)の可換性を必要とします。実際、I の任意の射 f をとってみます。関手 D は f を C の射 D f に対応させます。これは三角形の底辺を形成します。定関手 Δc は f を c の応答射に対応させます。Δ は射の2つの終域を1つの対象に変え、自然性の四角形は可換な三角形になります。この三角形の2つの側面は、自然変換の成分です。

image

image

したがって、これは1つの錐です。我々が関心があるのは、積の定義のための普遍的な対象を選んだときのように、普遍的な錐です。

普遍的な錐を得る方法はたくさんあります。例えば、与えられた関手 D を元に錐の圏を定義できるかもしれません。その圏における対象は錐です。しかしながら、Δc から D への自然変換が存在しない場合があるので、C の任意の対象 c が錐の頂点になるわけではありません。

これを圏にするには、錐の間の射を定義しなければいけません。それは、錐の頂点の間の射によって完全に決定されそうです。しかし、任意の射がそうなるわけではありません。積の構造において、積の候補の対象どうしの射が射影の共通因子である条件を課したことを思い出してください。例えば

val p1 = p compose m
val q1 = q compose m

一般の場合において、この条件は、側面が射を因数分解する三角形は全て可換であるという条件に翻訳されます。

これらの因数分解の射を錐の圏における射とします。それらの射が合成することを検証するのは簡単で、恒等射が共通分解の射になることも検証できます。したがって、錐は圏を形成します。

いま、錐の圏における終対象を普遍的な錐と定義できます。終対象の定義は、任意の対象からその対象への一意の射が存在することです。この場合においては、任意の錐の頂点から普遍的な錐の頂点への一意の factorizer が存在することを意味します。我々はこの普遍的な錐をダイアグラム D の極限と呼び、LimD と書きます(文献において、Lim 記号の下に I に向く左矢印がよくみられます)。短縮形としてしばしば、この錐における頂点を極限(あるいは極限対象)と呼びます。

直感的には、極限はダイアグラム全体の性質を1つの対象に具体化するというものです。例えば、2つの対象のダイアグラムの極限は、2つの対象の積です。2つの射影を持つ積は、その両方の対象の情報を持ちます。そして普遍的であるということは、それが無関係ながらくたを持たないことを意味します。

taretmch commented 3 years ago

12.1 自然同型としての極限

この極限の定義については、まだ不十分なものがあります。つまり、これは実行可能ですが、任意の2つの錐を繋げる三角形に対しての可換性の条件がまだあります。これをある自然性に置き換えることができれば、よりエレガントになるでしょう。しかし、どのようにできるでしょうか?

我々はもはや1つの錐ではなく、錐全体の集まり(実は圏)を扱います。極限が存在するならば(保証はありませんが存在するとしましょう)、これらの錐のひとつは普遍錐です。任意の他の錐に対して一意の factorizer 射が存在します。factorizer はその頂点 c を普遍錐の頂点 LimD に対応させます。(実は、「他の」という言葉をスキップできます。恒等射は普遍錐を普遍錐自身に対応し、factorizer もそれ自身に対応させるからです。)重要なことを繰り返させてください。任意の錐が与えられると、特別な種類の一意の射が存在します。我々は特別な射への錐の対応を持ち、それは1対1対応です。

この特別な射は Hom 集合 C(c, LimD)の要素です。この Hom 集合の他の要素は、錐の対応を factorize しないという点では重要ではありません。我々が欲しいのは、c に対して C(c, LimD) から1つの射をとってくることができるということです。この射は、特定の可換性を満たしているものです。自然変換を定義しているように聞こえますか?間違いなく、そうです。

しかし、この変換によって関連する関手はなんでしょうか?

1つの関手は、対象 c を集合 C(c, LimD) に対応させます。これは圏 C から圏 Set への関手です。実は、これは反変関手です。射についてのその操作を定義する方法をみていきます。c' から c への射 f をとりましょう:

f :: c' -> c

我々の関手は、c' を集合 C(c', LimD) に対応させます。f についての関手の操作を定義する(f を引き上げる)ために、C(c, LimD) から C(c', LimD) との間の対応(反変関手なので。Tips: なぜ反変関手なのか?)を定義しなければいけません。では、C(c, LimD) の1つの要素 u をとり、これを C(c', LimD) のある要素に対応させることができるか見ましょう。Hom 集合の要素は射ですから、

u :: c -> LimD

と書けます。我々は u と f を合成して、

u . f :: c' -> LimD

を得ることができます。これは C(c', LimD) の要素です。したがって、実は射の対応をすでに得られています:

def contramap[C, C1, D[_]](f: C1 => C, u: C => Lim[D]): (C1 => Lim[D]) =
  u compose f

反変関手の特徴である、c と c' の順序の反転に注意してください。

自然変換を定義するために、C から Set へのもう1つの関手が必要です。しかし今回、我々は錐の集合を考えます。錐はまさに自然変換であるので、自然変換の集合 Nat(Δc, D) をみます。c から自然変換の特定の集合への対応は、反変関手です。どのように示せるでしょうか?再び、射についての操作を定義しましょう:

f :: c' -> c

f の引き上げは、I から C へ向かう2つの関手間の自然変換の対応であるべきです:

Nat(Δc, D) -> Nat(Δc', D)

どのようにして自然変換を対応させるのでしょうか?全ての自然変換は射の選択で、I の要素ごとの1つの射です。ある α (Nat(Δc, D) の要素)の a (I の対象) 成分は、射です:

α a :: Δc a -> D a

あるいは、定関手 Δ の定義を使って

α a :: c -> D a

ともかけます。f と α が与えられると、Nat(Δc', D) の要素 β を構築しなければいけません。その a 成分は射になるべきです:

β a :: c' -> D a

前者 (α a) と f を事前に合成すれば、後者 (β a) を簡単に得ることができます:

β a = α a . f

これらの成分が実は自然変換になることを示すのは比較的簡単です。

射 f が与えられたとき、2つの自然変換間の対応を成分ごとに構築しました。この対応は、次の関手に対して contramap を定義します:

c -> Nat(Δc, D)

我々が今やったことは、C から Set への2つの反変関手を持つことを示しただけです。前提は何も設けていませんでした。すなわち、これらの関手は常に存在します。

ちなみに、これらの関手の1つ目は圏論において重要な役割を担います。米田の補題について話すときにもう一度見ることでしょう。任意の圏 C から Set への反変関手は、 "presheaves" と呼ばれます。これは reprentable presheaf と呼ばれます。2つ目の関手もまた presheaf です。

今2つの関手があるので、それらの間の自然変換について話すことができます。したがって、これ以上苦労することなく、結論が言えます:I から C への関手 D は、先ほど定義した2つの関手の間に自然同型が存在するときに限って、極限 LimD を持ちます:

C(c, LimD) ~~ Nat(Δc, D)

自然変換とはなんだったでしょうか。全ての要素が同型であれば、それは自然変換です。

私はこれの証明をするつもりはありません。面倒ではないにしても、手順はとても簡単です。自然変換を扱うとき、射である要素にフォーカスします。この場合では、2つの関手の終域は Set 圏なので、自然変換の要素は関数になります。再び、その引数に対して何をするか考えることによって、関数を解析することができます。ここでは引数は射(C(c, LimD) の元)で、返り値は自然変換 (Nat(Δc, D) の元) か錐になります。この自然変換は、射であるそれ自身の要素を持ちます。したがって、それはずっと射であり、それらを追跡することができれば、その声明を証明することができます。

最も重要な結果は、この同型射に関する自然性が錐の対応の可換性にまさになることです。

これから見ることとして、自然変換の集合 Nat(Δc, D) は、関手圏における hom 集合と考えられます。そのため、我々の自然同型は、随伴関手と呼ばれるさらに一般的な関係を表す2つの hom 集合に関係しています。

taretmch commented 3 years ago

12.2 極限の例

積は、2 圏によって生成される図式の極限であることを見ました。

よりシンプルな極限の例があります:終集合です。終集合は、空圏によって生成される極限です。空圏からの関手は対象を選択しないので、錐はただの頂点と捕らえられます。

taretmch commented 3 years ago

12.3 余極限

taretmch commented 3 years ago

12.4 連続性

taretmch commented 3 years ago

12.5 チャレンジ