第二回圏論勉強会の予習

第一回圏論勉強会の資料で分からないところを説明して頂きました。
7
山本和彦 @kazu_yamamoto

対の定義の X が何なのか、イメージが湧かない。

2013-05-23 15:11:51
cutsea110 @cutsea110

@kazu_yamamoto 1とか3とかでいいみたいですけど。fが(+1)でgがshowみたいなものでってのは言ってた。Xが1ならAは2Bは"1"で対が(2,"1")とかみたいですが、ほかの例みたい複数のXがってのがイメージできてない…

2013-05-23 15:17:31
山本和彦 @kazu_yamamoto

.@cutsea110 え? そんな感じなのですか? そのときの u はなんですか? 僕は u が (,) だと思って悩んでいました。

2013-05-23 15:21:52
山本和彦 @kazu_yamamoto

Int と Char の直積が (Int,Char) みたいな話じゃないの? 分からん。

2013-05-23 15:22:36
cutsea110 @cutsea110

(2,"1")が積に当たるというのがどうも良く分からないな。

2013-05-23 15:25:49
cutsea110 @cutsea110

@oskimura 集合のやつとかそんな感じっぽいけど、対になるとどうも良く分からない。

2013-05-23 15:26:50
シャミノ @syamino

@kazu_yamamoto @cutsea110 u = (f &&& g) のほうが近いと思います

2013-05-23 15:27:06
山本和彦 @kazu_yamamoto

.@syamino @cutsea110 たとえ、そうだとしても、だから何だという感じなんですよねぇ。(,) の性質を表しているとは思えないんですよ。

2013-05-23 15:30:44
山本和彦 @kazu_yamamoto

.@hiratara @cutsea110 はい。そう考えるしかなさそうですが、その場合、この定義が (,) を特徴付けるということに納得がいきません。

2013-05-23 15:39:32
cutsea110 @cutsea110

@hiratara @kazu_yamamoto 今ちょっと絵を書いてみてたけど、これって射を対象から対象への関数とすると全部合成で射を書き足せちゃうから(2,"1")が積というポジションを占めるということの確信が持てないです。

2013-05-23 15:43:39
スマートコン @mr_konn

.@cutsea110 @hiratara @kazu_yamamoto まず、一旦圏論のことを忘れてみます。直積は X, Y から元 a, b を取れば対 (a, b) が決まって、逆に z ∈ X×Y を決めれば fst(z), snd(z) が決まる。これはよいですか?

2013-05-23 15:45:11
スマートコン @mr_konn

@kazu_yamamoto @cutsea110 @hiratara ここでは元を取りましたが、圏論の特徴は「元を取らずに射だけで考える」ことです。Hask 圏で考えるなら射は函数です。そこで、a :: X, b :: Y を取る代わりに何か代わりになる函数を考えたい(続)

2013-05-23 15:47:32
スマートコン @mr_konn

@mr_konn @cutsea110 @hiratara @kazu_yamamoto そんなもの取れるのか?取れます。a :: () → X という函数を考えれば、この函数に () を渡すことで X の値が一つ決まります。

2013-05-23 15:48:37
山本和彦 @kazu_yamamoto

.@hiratara @cutsea110 (,) は射じゃなくて、対象(型)なのですか? そうだと、ますます分からないなぁ。

2013-05-23 15:48:40
スマートコン @mr_konn

@mr_konn @cutsea110 @hiratara @kazu_yamamoto 逆に、a :: X に対して \() -> a :: () → X を考えれば、X から () → X が定まります。つまり、型 X の値と型 () → X を持つ函数は1対1に対応します

2013-05-23 15:50:05
スマートコン @mr_konn

hiratara さんにもリプとばしてるのなんかすごい釈迦に説法感が出てきた

2013-05-23 15:52:02
hiratara @hiratara

@kazu_yamamoto @cutsea110 えと、Haskだと対象が型で射が関数ってだけです。(,)::String -> Int -> (String, Int)って意味でしたら、(,)は射です。ドメインがString、コドメインはInt->(String, Int)。

2013-05-23 15:52:27