Mercurial > hg > Papers > 2015 > atton-thesis
annotate category.tex @ 50:37a832dff044
Add DeltaM example
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 15 Feb 2015 17:56:51 +0900 |
parents | 113b49263d40 |
children | bf136bd59e7a |
rev | line source |
---|---|
10 | 1 \chapter{Categorical Definitions of Monad} |
11
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
2 \label{chapter:category} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
3 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
4 \ref{chapter:delta}章ではプログラムの変更がメタ計算としてMonadを用いて定義可能であることを示した。 |
33
113b49263d40
Split chapter to description monad. category/functional programming
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
5 \ref{chapter:category}章では category により Monad の定義と要請されるMonad則について述べる。 |
113b49263d40
Split chapter to description monad. category/functional programming
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
6 定義は Monad の解説に必要な部分についてのみ解説する。 |
10 | 7 |
14
586f3ce1effe
Add folding for section
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
12
diff
changeset
|
8 % {{{ Category |
586f3ce1effe
Add folding for section
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
12
diff
changeset
|
9 |
10 | 10 \section{Category} |
15 | 11 \label{section:category} |
11
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
12 まずは Monad の定義に必要な Category (圏)について述べる。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
13 |
15 | 14 category は2つの要素を持つ。 |
11
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
15 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
16 \begin{itemize} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
17 \item object (要素) |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
18 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
19 \item morphism (射, arrow) |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
20 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
21 object から object へのマッピング。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
22 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
23 morphism によってマップされる対象を domain と呼び、マップした先の対象を codomain と呼ぶ。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
24 つまり domain から codomain への object をマップするものが morphism である。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
25 domain A と codomain B を持つ morphism f は式\ref{exp:morphism}のように書くこととする。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
26 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
27 \begin{equation} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
28 f : A \rightarrow B |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
29 \label{exp:morphism} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
30 \end{equation} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
31 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
32 \end{itemize} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
33 |
15 | 34 そして category は object と moprhism に対して2つの法則を満たす。 |
11
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
35 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
36 \begin{itemize} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
37 \item 全ての object について identity mapping が存在する |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
38 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
39 identity mapping とは domain と codomain が同じ morphism のことである。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
40 identity mappping は id と略する。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
41 id は全ての object に存在するため、 object A に対する id は $ id_A $ と書く。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
42 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
43 \item 同じ obejct が domain と codomain になっている2つのmorphismは合成することができ、合成の順番は結果に影響しない。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
44 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
45 morphism の合成には記号 $ \circ $ を用いる。 |
12
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
46 object B から C への morpshim f と object A から B への morphism g があった時、 f と g を合成すると式\ref{exp:morphism_compose}となる。 |
11
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
47 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
48 \begin{equation} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
49 f \circ g : A \rightarrow C |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
50 \label{exp:morphism_compose} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
51 \end{equation} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
52 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
53 改めて、morphism の合成の順序が結果に影響しないことを式にすると式\ref{exp:morphism_composition_law}のようになる。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
54 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
55 \begin{eqnarray} |
16
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
56 \label{exp:morphism_composition_law} |
11
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
57 f : C \rightarrow D \nonumber \\ |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
58 g : B \rightarrow C \nonumber \\ |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
59 h : A \rightarrow B \nonumber \\ |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
60 (f \circ g) \circ h = f \circ (g \circ h) : A \rightarrow D |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
61 \end{eqnarray} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
62 \end{itemize} |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
63 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
64 例えば、object A,B と A から B への moprhism を持つ category は図\ref{fig:simple_category}のようになる。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
65 |
12
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
66 \begin{figure}[htbp] |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
67 \begin{center} |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
68 \includegraphics[scale=1.0]{fig/simple_category.pdf} |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
69 \caption{object A,B と morpshim f を持つ category} |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
70 \label{fig:simple_category} |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
71 \end{center} |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
72 \end{figure} |
11
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
73 |
12
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
74 なお、id は全ての object に存在するために省略して書くことが多いため、これからは省略する。 |
11
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
75 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
76 object を点、morphism を線とした図を commutative diagram (可換図式) と呼ぶ。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
77 ある object から object への morphism の合成の path に関わらず結果が同じである時、その図を commutative (可換)と呼ぶ。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
78 例えば、式\ref{exp:morphism_composition_law}の category の commutative diagram は図\ref{fig:morphism_composition_law}のようになる。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
79 |
12
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
80 \begin{figure}[htbp] |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
81 \begin{center} |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
82 \includegraphics[scale=0.8]{fig/morphism_composition_law.pdf} |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
83 \caption{式\ref{exp:morphism_composition_law} の morphism の合成法則の category がなす commutative diagram} |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
84 \label{fig:morphism_composition_law} |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
85 \end{center} |
11015b94a5cd
Add figures category
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
11
diff
changeset
|
86 \end{figure} |
11
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
87 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
88 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
89 commutative diagram が commutative である時、moprhism の合成順序が異なっても結果が同じであることを利用して等価性の証明を行なうことを diagram chasing と呼ぶ。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
90 ある性質を category に mapping し、diagram chasing を用いて証明を導くことで性質を解析していく。 |
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
91 |
14
586f3ce1effe
Add folding for section
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
12
diff
changeset
|
92 % }}} |
586f3ce1effe
Add folding for section
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
12
diff
changeset
|
93 |
15 | 94 % {{{ Functor |
11
76ce5bb18092
Add Category definition
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
10
diff
changeset
|
95 |
10 | 96 \section{Functor} |
15 | 97 \label{section:functor} |
98 \ref{section:category} 節では category を定義した。 | |
99 \ref{section:functor} 節では category から category への mapping である Functor (関手)について解説する。 | |
100 | |
101 functor F とはある category C から D への mapping である。 | |
102 functor F を用いて category C の object もしくは morphism である x を category D の object もしくは morphism に対応させることを式\ref{exp:apply_functor}のように記述する。 | |
103 | |
104 \begin{equation} | |
105 F(x) | |
106 \label{exp:apply_functor} | |
107 \end{equation} | |
108 | |
109 functor は以下の functor 則を満たす。 | |
110 | |
111 \begin{itemize} | |
112 \item id を保存する | |
113 | |
114 category C における object A への id $ 1_A $ は F A においても id として振る舞う。 | |
115 | |
116 \begin{equation} | |
117 F(1_A) = 1_{F(A)} | |
118 \end{equation} | |
119 | |
120 \item morphism の合成を保存する | |
121 | |
122 category C における morphism f g の合成を考える。 | |
123 合成された $ f \circ g $ を F により mapping することと、f と g を個別に F により mapping した後に合成した結果は同じである。 | |
124 | |
125 \begin{equation} | |
126 F(f \circ g) = F(f) \circ F(g) | |
127 \end{equation} | |
128 \end{itemize} | |
129 | |
130 functor の例を挙げる。 | |
131 まず、 3つの object A,B,C と morphism f,g,h を持つ category C を考える。 | |
132 category C の morphism は式\ref{exp:functor_categoryC}であるとする。 | |
133 | |
134 \begin{eqnarray} | |
16
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
135 \label{exp:functor_categoryC} |
15 | 136 f : A \rightarrow C \\ \nonumber |
137 g : B \rightarrow B \\ \nonumber | |
138 h : B \rightarrow C \\ \nonumber | |
139 f = g \circ h | |
140 \end{eqnarray} | |
141 | |
142 次に、 2 つの object A', B' と morphism f', g' を持つ category D を考える。 | |
143 category D の morphism は式\ref{exp:functor_categoryD}であるとする。 | |
144 | |
145 \begin{eqnarray} | |
16
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
146 \label{exp:functor_categoryD} |
15 | 147 f : B' \rightarrow A' \\ \nonumber |
148 g : A' \rightarrow B' \\ \nonumber | |
149 \end{eqnarray} | |
150 | |
151 C から D への functor F は式\ref{exp:functorF}のようなものがある。 | |
152 | |
153 要素数が異なるため一見正しく mapping できないように思えるが、正しく Functor 則を満たしている。 | |
154 | |
155 \begin{eqnarray} | |
16
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
156 \label{exp:functorF} |
15 | 157 F(A) = A' \\ \nonumber |
158 F(B) = B' \\ \nonumber | |
159 F(C) = A' \\ \nonumber | |
160 F(id_A) = F(id_{A'}) \\ \nonumber | |
161 F(id_B) = F(id_{B'}) \\ \nonumber | |
162 F(id_C) = F(id_{A'}) \\ \nonumber | |
163 F(f) = id_{A'} \\ \nonumber | |
164 F(g) = g' \\ \nonumber | |
165 F(h) = f' \\ \nonumber | |
166 F(h \circ g) = F(h) \circ F(g) = f' \circ g' = id_{A'} = F(f) | |
167 \end{eqnarray} | |
168 | |
169 functor F を用いて category C を category D へと mapping した図が図\ref{fig:functor}である。 | |
170 | |
171 \begin{figure}[htbp] | |
172 \begin{center} | |
173 \includegraphics[scale=0.8]{fig/functor.pdf} | |
174 \caption{Functor の例} | |
175 \label{fig:functor} | |
176 \end{center} | |
177 \end{figure} | |
178 | |
179 functor により category から category への mapping を考えることが可能となった。 | |
180 | |
181 % }}} | |
182 | |
16
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
183 % {{{ Natural Transformation |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
184 |
10 | 185 \section{Natural Transformation} |
16
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
186 \label{section:natural_transformation} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
187 \ref{section:functor}節では category から category への mapping である functor について述べた。 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
188 \ref{section:natural_transformation}節では functor と functor の関係である Natural Transformation(自然変換)について述べる。 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
189 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
190 category C から D への functor F, G が存在する時、F から G への変換 t を考える。 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
191 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
192 t は category C の A に対し、F(A) から G(A) への変換を提供する(式\ref{exp:trans})。 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
193 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
194 \begin{equation} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
195 t(A) : F(A) \rightarrow G(A) |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
196 \label{exp:trans} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
197 \end{equation} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
198 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
199 t が 式\ref{exp:natural_transformation}を満たす時、t を natural transformation を呼ぶ。 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
200 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
201 \begin{eqnarray} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
202 \label{exp:natural_transformation} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
203 f : A \rightarrow B \\ \nonumber |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
204 G(f)t(A) = t(B)F(f) |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
205 \end{eqnarray} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
206 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
207 t が natural transformation である時、 category A における A を functor F で移したのちに morphism を適用しても、 functor G で移した後に morphism を適用しても良いという可換性が得られる。 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
208 式\ref{exp:natural_transformation}の可換図は図\ref{fig:natural_transformation}となる。 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
209 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
210 \begin{figure}[htbp] |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
211 \begin{center} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
212 \includegraphics[scale=1.0]{fig/natural_transformation.pdf} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
213 \caption{自然変換の可換図(式\ref{exp:natural_transformation})} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
214 \label{fig:natural_transformation} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
215 \end{center} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
216 \end{figure} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
217 |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
218 % }}} |
cff9f6f0ff25
Add description natural transformation
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
219 |
17
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
220 % {{{ Monad |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
221 |
10 | 222 \section{Monad} |
17
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
223 \label{section:monad} |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
224 \ref{section:natural_transformation}節では functor 間の可換性 natural transformation について述べた。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
225 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
226 category, functor, natural transformation を用いて Monad を定義する。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
227 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
228 category C における monad とは以下の性質を持つ $ triple (T, \eta, \mu) $ である。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
229 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
230 \begin{itemize} |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
231 \item $ T : C \rightarrow C $ |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
232 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
233 category C から C への functor T |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
234 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
235 \item $ \eta : id_C \rightarrow T $ |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
236 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
237 C から T への natural transformation $ \eta $ |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
238 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
239 \item $ \mu : T^2 \rightarrow T $ |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
240 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
241 $ T^2 $ から $ T $ への natural transformation $ \mu $ |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
242 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
243 なお、 $ T^2 $ とは $ TT $ と同義であるとする。つまり functor T による mapping を2回行なうものである。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
244 回数を n 回とすることで $ T^n $ と記述する。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
245 \end{itemize} |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
246 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
247 この $ triple (T, \eta, \mu) $ が図\ref{fig:monad_laws}の可換図を満たす。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
248 なお、Aに対する $ \mu $ を $ \mu_A $ と記述する。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
249 同じように A に対する $ \eta $ を $ \eta_A $ と記述する |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
250 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
251 \begin{figure}[htbp] |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
252 \begin{center} |
20 | 253 \includegraphics[scale=0.9]{fig/monad_laws.pdf} |
17
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
254 \caption{$ triple (T, \eta, \mu) $ が Monad であるために満たすべき可換図} |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
255 \label{fig:monad_laws} |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
256 \end{center} |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
257 \end{figure} |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
258 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
259 図\ref{fig:monad_laws} で示した可換図は monad が満たすべき Monad則であり、T に対する演算の可換性を強制する。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
260 $ \eta $ は T を1つ増やすオペレーションであり、$ \mu $ は T を 2 つから1つに減らすオペレーションである。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
261 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
262 左側の可換図は T が 3つある場合の可換性である。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
263 TTT に対して、 (TT)T のよう外側の2つのTに $ \mu $ を行なってから結果の TT に対して $ \mu $ を行なっても、 T(TT) のように内側の2つのTに $ \mu $ を行なってから結果の TT に対して $ \mu $ を行なっても可換であることを示す。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
264 つまり、TTTを減らす演算は左から行なっても右から行なっても良いことを示す。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
265 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
266 そして右側の可換図は T が1つである場合の可換性である。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
267 T A に対して $ \eta $ を行ない TT A としてから $ \mu $ を行なっても、T A の内部の A に対して $ \eta $ を行ない TT A としてか $ \mu $ を行なっても、 T A の id と同じであることを示している。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
268 つまり、Tに対する演算における左右の単位元となるような性質を $ triple (T, \eta, \mu) $ に強制することとなる。 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
269 |
e2afa8266ecc
Add description Monad
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
270 % }}} |