bitterharvest’s diary

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

プログラマーのための圏論(特論)

圏論:ストリング・ダイアグラム ー 米田の補題

4.米田の補題 いよいよ米田の補題の証明である。これは次のようになっている。局所的に小さい圏\(\mathcal{C}\)(任意の2対象\(A,B\)に対して\({\rm Hom(A,B)}\)の類が集合となっているような圏)について、共変\({\rm Hom}\)関手\(h^A:\mathcal{C} \rightar…

圏論:ストリング・ダイアグラム ー 表現可能関手

3.表現可能関手 世の中のものにはそれぞれ名前がついているのが普通で、いちいちその由来を考えることはないが、時々なぜと頭を悩ませるものがある。表現可能関手(representable functor)もその一つだ。この関手が、何を表現可能にしてくれるのだろうと考…

圏論:ストリング・ダイアグラム ー 異なる随伴の定義が同値であることの証明

2.2 余単位-単位随伴による定義 随伴の定義には先に説明したもののほかに、いくつかの同値な言い換えがある。その中で、よく知られているものに、余単位(counit)-単位(unit)随伴がある。これは次のように定義される。圏\(\mathcal{C}\)と\(\mathcal{D}\)…

圏論:ストリング・ダイアグラム ー 随伴

2. 随伴 ストリング・ダイアグラムでの表現にも慣れてきたので、いきなりジャンプして、圏論の真髄ともいえる随伴について考えることにしよう。 2.1 随伴の定義 ウィキペディアでは、随伴を次のように定義している(但しここでは記号は変えてある)。圏\(…

圏論:ストリング・ダイアグラム ー \( {\rm Hom}\) 関手

1.7 \( {\rm Hom}\) 関手 圏論らしいと思わせてくれる関手の一つが\( {\rm Hom}\) 関手である。これは射を集合として扱えるようにしてくれる素晴らしい機能である。 1)\( {\rm Hom}\)集合 \( {\rm Hom}\) 関手の説明に先立って\( {\rm Hom}\)集合を説明…

圏論:ストリング・ダイアグラム ー 自然変換

1.6 自然変換 対象の間をつないだものが射、圏の間をつないだものが関手、そして関手の間をつないだものが自然変換である。射での合成は、関手でも保存されたが、自然変換でも同じように保存される。関手は二つの圏を結ぶものであった。このため一方の圏…

圏論:ストリング・ダイアグラム ー 関手

1.5 関手 関手は、未知の圏を既知の圏から観察できるようにしてくれる、圏論の中でも重要な概念の一つである。二つの圏が与えられたとき、これらを関手でつなぐことによって、一方の圏が持つ代数的構造を、他方の圏に持ち込むことが可能になり、他方を観…

圏論:ストリング・ダイアグラム ー 合成・結合律・単位律

1.3 合成 射の合成は、圏を構成するための重要な道具の一つである。圏\(\mathcal{C}\)において、射\(f:A \rightarrow B, g:B \rightarrow C\)が存在したとき、\(f\)を計算し、その結果に対して\(g\)を計算することを、射の合成と言い、これを\( g \circ f…

圏論:ストリング・ダイアグラム ー 集合の要素

1.2 集合の要素 圏にはいろいろな種類があるが、それらの中で馴染みやすいのは集合の圏だろう。これは\(\mathbf{Set}\)で表すことにしよう。集合の圏\(\mathbf{Set}\)とは、対象のそれぞれが集合であり、集合の間の射はそれぞれが全関数であり、射の合成…

圏論:ストリング・ダイアグラム ー 射

テレビでは、連日、それもかなり頻繁に、コロナウイルスが話題に上っている。感染症の一つなので、その数理的なモデルはパーコレーションである(複雑系という学問の中で、20世紀末から21世紀初頭にかけて多くの研究成果が発表された)。そしてこれを終息させ…

圏論をビジュアルに表現する(4)-随伴とモナドの関係

6.5 随伴とモナド ストリング・ダイアグラムを用いて、随伴からモナドが導き出されることを示そう。前述したように随伴は、二つの圏\(\mathcal{C,D}\)と関手\(L:\mathcal{D} \rightarrow \mathcal{C}, R:\mathcal{C} \rightarrow \mathcal{D}\)で構成され…

圏論をビジュアルに表現する(3)-モナド

6.4 モナド Haskellを学んだときに、多くの人がこれは何だろうと思ったのが、モナドだと思う。恐らくは入出力のところで出会ったことと思うが、なんでそのまま出力されないのと思ったことだろう。話はそれるが、昨年は、九州、東北、北海道にある縄文時代…

圏論をビジュアルに表現する(2)-随伴

6.3 随伴 随伴は、圏論を代表する概念である。これは、「二つの圏が全く同じとは言わないまでもとても似ている」という考え方を与える。二つの圏\( \mathcal{C,D} \)が与えられた時に、\(LR=I_\mathcal{C}\)と\(RL=I_\mathcal{D}\)を満たすような関手\(L:…

圏論をビジュアルに表現する(1)-ストリング・ダイアグラム

6.1 圏の圏 中学に入学すると、算数に代わって数学という教科が登場する。計算問題が嫌いだった私は、嫌なことから解放してくれるような、楽しいパラダイムがきっと待ち受けているのだろうと、過剰に期待した。しかし、真っ先に学んだのは、三角形の合同…

圏論をデータベースに応用する(2)

5.4 セッターとゲッターの関手を一般化する 前回の記事の中で、説明の中心となっていた\(Store \ a \)という関手は、代数的データ型を用いて、 data Store a s = (a, a -> s) で定義した。しかしこれはデータベースでのセッターとゲッターを分かりやすく…

圏論をデータベースに応用する(1)

5 随伴とデータベース これまで、圏論の理論的な面を重視しながら、重要な定理である随伴まで学んできた。これだけ学んだのだから素晴らしい応用に出会えるはずだ、と考えるのは当然のことだ。ここでは、情報技術の中でも特に重要なデータベースとの関連に…

数学的帰納法によるプログラミングを修得するためにF-代数を攻略する

4. F-代数 今回はあまり聞きなれてはいないと思われるF-代数( F-algebra )について学んでみよう。代数という名が示すとおり、これは、半群、モノイド、群、環などの代数を表現するための重要な役割を担っているが、それにもまして、数学的帰納法による再帰…

モノイドを攻略する

3. モノイドとコモノイド 今回はモノイド(monoid)と、そして、その双対であるコモノイド(comonoid)を説明しよう。モノイドという用語を使うと難解だと感じる読者も多いことだろうが、小学校以来学んできた足し算や掛け算などの多くの二項演算に関するもの…

コモナドを攻略する

2.コモナド 今回の記事はコモナド(余モンドとも言われる)だ。モナドはあちらこちらで出会うことが多いが、コモナドについての説明はそれほど多くない。今回の記事でも示すが、実はコモナドの概念はとても面白く、現実の世界の中でこれはコモナドではと思う…

モナドを攻略する

1.モナド クリスマスパーティーは大きくなった孫たちが集まりとても賑やかだった。今年は、ターキーを2羽焼いた。例によって、ブライン液につけ、ジューシーな味を楽しんだ。今年のターキー。焦げ具合が違うのは、250度で10分焼いた後、左側を170度、右を1…