すべてが@__kanになる

22
すべてが になる

Upload: masahiro-honma

Post on 11-Jun-2015

1.121 views

Category:

Technology


1 download

DESCRIPTION

kan拡張の定義を話しました。 (japanese only

TRANSCRIPT

Page 1: すべてが@__kanになる

すべてが@__kanになる

@ FreakOuthiratara

Page 2: すべてが@__kanになる

自己紹介名前: @hiratara@__kanの同僚趣味: 数学

勤務

Data::Monadモナモナ言うモナド入門

FreakOut

Page 3: すべてが@__kanになる

FreakOut国内初のDSP

DSP=リアルタイムオークション膨大なトラフィックと高度なロジックの両立Perl

ロックな職場 技術者募集中

@941さんレポート

Page 4: すべてが@__kanになる

登壇の経緯@__kanさんが土俵入りすると聞いた登壇者の中にFreakOutが居なかった「> 登壇者が会社や仕事云々を抜きにして自身の考えの境地を発表いたします」

Page 5: すべてが@__kanになる

好き放題

Page 6: すべてが@__kanになる

今日のテーマせっかくなので@__kanの凄さを伝えたい。

最近流行りの「かん**」と言えば

Page 7: すべてが@__kanになる

かん拡張

Page 8: すべてが@__kanになる

圏論の基礎すべての概念はカン拡張である p.336

「すべて」をカン拡張として表現することで終わる p.315

Page 9: すべてが@__kanになる

カン拡張 - Kan extensionsDaniel Marinus Kan (イスラエル、MIT名誉教授)極限や随伴の概念の一般化Haskellのライブラリ (Data.Functor.Kan.Ran, Lan)

Page 10: すべてが@__kanになる

カン拡張 - Kan extensions を圏、 を関手とする。

が の に沿った右カン拡張であるとは、 が関手で、 が自然変換であり、任意の別のペア

に対して、 なる がただ一つ存在すること。

, , K : ³ , T : ³ (R, 1) T K R : ³

1 : RK ó T(H, �) � = 1 2 (� 1 K) �

この を と書く。R TanK

Page 11: すべてが@__kanになる

R�H

K

T

R H�1 �

RK1

HK�1K

��

T

Page 12: すべてが@__kanになる

つまり、 が自然同型。(HK, T) ^ (H, T) anK

Page 13: すべてが@__kanになる

全ては@__kanか例として、直積をカン拡張で述べる。

Page 14: すべてが@__kanになる

直積2点からなる離散圏からの関手の極限。圏 の対象 と につい

て書き下すと、以下の図式。 A B

Xf g<f ,g>

A A × B�1 �2B

Page 15: すべてが@__kanになる

材料2点からなる離散圏を と書く。関手

を考える。{1, 2}

T : {1, 2} ³ Sets, K : {1, 2} ³ 1

1

{1, 2}K

T Sets

Page 16: すべてが@__kanになる

右カン拡張するカン拡張は関手 と自然変換 になる。 関

手 は の集合1つと対応する。T : 1 ³ SetsanK 1

Ra TnK Sets

1TanK

{1, 2}K

T Sets

T 1 KanK

1

T

Page 17: すべてが@__kanになる

自然変換 はその1つの集合から、 が定める2つの集合への射なので、コンポーネントが2つ。元の圏に射はないので、可換

性は気にしなくてよい。

1 T

T(0)anK11 T(1)

T(0)anK12 T(2)

Page 18: すべてが@__kanになる

普遍性をチェックする同様の関手と自然変換 を任意にとる。普遍射は

なる自然変換であった。(H, �)

� : H ³ TanK

1TanK

H

{1, 2}K

T Sets

T 1 KanK

1

HK

�T

Page 19: すべてが@__kanになる

は1点から1点の自然変換。まとめると以下の図となり、これは直積と一致。

H(0)�1 �2�0

T(1) T(0)anK11 12T(2)

Page 20: すべてが@__kanになる

直積は@__kanになった!

Page 21: すべてが@__kanになる

Haskellでの表現data Ran' k t a = forall r. Functor r => Ran' (forall x. r (k x) -> t x) (r a)

R

�H

K

T

R H�1 �

RK

1

HK�1K

��

T

Page 22: すべてが@__kanになる

まとめ

横綱級エンジニア@__kanにご期待下さい

KAN EXTENSIONS AND NONSENSICALGENERALIZATIONS