bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

プログラマーのための圏論 (上級編)

極限-HaskellでのReaderを定義する

3.2 \(Reader\)を定義する Haskellでは\(Reader\)を用意している。Control.Monad.Readerというモジュールを読み込めば、使えるようになっている。しかし、このモジュールを理解しようとすると、忍耐力を必要とする。汎用性を高めるために、\(Reader\)が、…

極限-HaskellでのReaderについて

3.Haskellでの極限と余極限 これまでの記事で、極限と余極限の説明をしてきた。数学的な記述が主で、Haskellを学ぼうとしている人は、役に立たないなと感じたことだろう。圏論での積や余積は、乗算や加算、あるいは、論理積や論理和と関係があることは、直…

極限-余極限の例

2.2 余極限の抽象化 前回と同じように、余極限を抽象化してみよう。ここでは、下図のように、三つの圏を用意する。最初の圏\(\mathcal{C_0}\)は、余錐の頂点からなる圏だ。次の圏\(\mathcal{C}\)は余錐で構成される圏だ。最後の圏\([\mathcal{I,C}]\)はイ…

極限-余錐と余極限の定義

2.余極限 極限と双対の関係にあるのが、余極限である。 2.1 余錐と余極限の定義 前回までの記事で、極限について説明してきた。極限は錐(cone)を用いることで定義した。即ち、ある圏の中で錐が定義できたとする。そのような錐は、複数あっても一つでも…

極限-極限の例

1.8 錐の例 今年のブログの締めは、少しでも圏論が身近に感じられるようにするために、錐の例を取り上げよう。前回のブログで、抽象度の高い、下図のような極限の可換図を示した。 この可換図は、錐を作成すると、それがどのような極限なのかを、示してく…

極限-錐と極限のさらなる抽象化

1.7 錐と極限のさらなる抽象化 前回の記事で、錐は二つの異なる方法で作成できることが分かった。一つは、錐の頂点から錐の底面への写像を自然変換で与えるものである。もう一つは、求める錐の頂点から極限の錐の頂点への射を与えるものである。前回は、…

極限-錐と極限の抽象化

1.6 錐と極限の抽象化 前回の記事までで、インデックス圏を用いての粋と極限の求め方を説明してきた。その中では、インデックス圏から粋を作成しようとしている圏へ、三角形のまま移す関手と、一点にまとめる関手を用意した。前者は錐の底辺を形成し、後…

極限-極限の定義

1.5 極限の定義 前回の記事で、インデックス圏から錐を作成する方法を示した。 上図で、関手\(D\)によって、インデックス圏\(\mathcal{I}\)での三角形(頂点が対象、辺が射)が、圏\(\mathcal{C}\)に移され、これから作成される(三角)錐の底辺を形成する。…

極限-錐

1.4 錐 これまで、2回にわたって、圏論での極限の具体的な例を示してきた。そこでは、二つの対象\(A\),\(B\)とその極限\(A \times B\)ということで説明をした。また、極限は、ある条件を満たすものの中で最も良いものといういい方もした。また、ある条件…

極限-例:最大公約数

1.3 最大公約数 前回の記事では、集合を利用して、圏論での積を説明した。また、積の普遍性についても説明した。これらをさらに進めると、極限になる。しかし、もう少し例を挙げて、極限の説明をするための準備をすることにしよう。ここでは、集合から離…

極限-圏論の積

プログラマのための圏論(初級編)では、自然変換まで説明した。ここまで理解すると本当の意味で圏論を自由に扱えるようになる。上級編では、これまでの理解を踏まえて、さらに圏論の奥義を学ぶことにしよう。 1.極限 圏論の特徴は抽象階層だと思う。圏は、…