{{위키데이터 속성 추적}}
{{다른 뜻|모나드|수학}}
[[범주론]]에서 '''모나드'''({{llang|en|monad}})는 내부 함자 범주의 [[모노이드 대상]]이다. [[폐포연산]]과 [[대수 구조 다양체]]의 공통적인 일반화이다.

== 정의 ==
<math>\mathcal C</math>가 [[범주 (수학)|범주]]라고 하자. 그렇다면 [[자기 함자]] <math>\mathcal C\to\mathcal  C</math>들을 대상으로 하고, 이들 사이의 [[자연 변환]]들을 [[사상 (범주론)|사상]]으로 하는 [[자기 함자 범주]] <math>\operatorname{End}(\mathcal C)</math>를 생각하자. <math>\operatorname{End}(\mathcal C)</math>는 [[모노이드 범주]]이며, 따라서 <math>\operatorname{End}(\mathcal C)</math> 속의 [[모노이드 대상]]을 생각할 수 있다. <math>\operatorname{End}(\mathcal C)</math>의 모노이드를 <math>\mathcal C</math>의 '''모나드'''라고 한다.

구체적으로, 모나드는 다음과 같은 데이터로 이루어져 있다.
* 내부 준동형 함자 <math>T\colon C\to C</math>
* (항등원) [[자연 변환]] <math>\eta\colon 1_C\Rightarrow T</math> (<math>1_C</math>는 상수 함자)
* (합성) [[자연 변환]] <math>\mu\colon T^2\Rightarrow T</math>
이들은 임의의 대상 <math>A\in\mathcal C</math>에 대하여 다음 세 그림들을 가환되게 하여야 한다.
* ([[결합 법칙]]) 임의의 대상 <math>A\in\mathcal C</math>에 대하여, <math>T\mu_A\circ\mu_A=\mu_{TA}\circ\mu_A</math>. 즉, 다음 그림이 가환한다.
*: <math>\begin{matrix}
TTTA&\xrightarrow{T\mu}&TTA\\
{\scriptstyle\mu}\downarrow&&\downarrow\scriptstyle\mu\\
TTA&\xrightarrow[\mu]{}&TA\end{matrix}</math>
* (항등원의 성질) 임의의 대상 <math>A\in\mathcal C</math>에 대하여, <math>\eta_{TA}\circ\mu_A=T\eta_A\circ\mu_A=\operatorname{id}_A</math>. 즉, 다음 두 그림이 가환한다.
:<math>\begin{matrix}
TA&\xrightarrow\eta&TTA\\
&{\scriptstyle\operatorname{id}}\searrow&\downarrow\scriptstyle\mu\\
&&TA\end{matrix}\qquad\qquad\begin{matrix}
TA&\xrightarrow{T\eta}&TTA\\
&{\scriptstyle\operatorname{id}}\searrow&\downarrow\scriptstyle\mu\\
&&TA\end{matrix}</math>

=== 모나드 위의 대수 ===
모나드 <math>T\colon\mathcal C\to\mathcal C</math> 위의 '''대수'''({{llang|en|algebra over <math>T</math>}}) <math>(A,\operatorname{eval})</math>는 다음과 같은 순서쌍이다.
* <math>A\in\mathcal C</math>는 <math>\mathcal C</math>의 대상이다.
* <math>\operatorname{ev}\colon TA\to A</math>는 <math>\mathcal C</math>의 사상이다.
이는 다음 두 그림들을 가환하게 만들어야만 한다.
:<math>\begin{matrix}
TTA&\xrightarrow\mu&TA&\xleftarrow\eta&A\\
{\scriptstyle T\operatorname{ev}}\downarrow&&\downarrow\scriptstyle\operatorname{ev}&\swarrow\scriptstyle\operatorname{id}\\
TA&\xrightarrow[\alpha]{}&A
\end{matrix}</math>

모나드 <math>T</math> 위의 두 대수 <math>(A,\operatorname{eval}_A)</math>, <math>(B,\operatorname{eval}_B)</math> 사이의 '''[[준동형]]''' <math>f\colon A\to B</math>는 다음 그림을 가환하게 만드는 <math>\mathcal C</math>-사상이다.
:<math>
\begin{matrix}
TA&\xrightarrow{Tf}&TB\\
{\scriptstyle\operatorname{eval}_A}\downarrow&&\downarrow\scriptstyle\operatorname{eval}_B\\
A&\xrightarrow[f]{}&B
\end{matrix}
</math>

모나드 <math>T</math> 위의 대수들과 그 사이의 [[준동형]]들의 범주를 <math>T</math>의 '''에일렌베르크-무어 범주'''({{llang|en|Eilenberg–Moore category}})라고 하며, <math>\mathcal C^T</math>로 표기한다.

=== 모나드에 대응하는 수반 함자 ===
[[수반 함자]]로부터 항상 모나드를 정의할 수 있다. 그 역 역시 항상 성립한다. 즉, 범주 <math>\mathcal C</math> 위의 모나드 <math>(T,\eta,\mu)</math>로부터 수반 함자를 정의할 수 있다. 사실, 이는 여러 가지로 가능하다. 범주 <math>\operatorname{Adj}(\mathcal C,T)</math>를 다음과 같이 정의하자.
* <math>\operatorname{Adj}(\mathcal C,T)</math>의 대상은 <math>T</math>를 유도하는 수반 함자이다. 즉, [[수반 함자]] <math>(F,G,e,\epsilon)</math> (<math>F\colon\mathcal C\to\mathcal D\colon G</math>) 가운데, <math>(G\circ F,e,G\circ\epsilon\circ F)=(T,\eta,\mu)</math>인 것들이다.
* <math>\operatorname{Adj}(\mathcal C,T)</math>의 사상은 [[수반 함자]] 사이의 사상 가운데, <math>\mathcal C</math> 위의 함자가 항등 함자인 것들이다.
그렇다면, <math>\operatorname{Adj}(\mathcal C,T)</math>는 적어도 다음 두 대상을 포함한다.
* '''클라이슬리 범주'''({{llang|en|Kleisli category}}) <math>\mathcal C^T</math>. 이는 <math>\operatorname{Adj}(\mathcal C,T)</math>의 [[시작 대상]]이다.
* '''에일렌베르크-무어 범주'''({{llang|en|Eilenberg–Moore category}}). 이는 <math>\operatorname{Adj}(\mathcal C,T)</math>의 [[끝 대상]]이다.

==== 클라이슬리 범주 ====
범주 <math>\mathcal C</math> 위의 모나드 <math>(T,\eta,\mu)</math>의 '''클라이슬리 범주''' <math>\mathcal C_T</math>는 다음과 같은 범주이다.
* <math>\mathcal C_T</math>의 대상은 <math>\mathcal C</math>의 대상과 같다.
* <math>\mathcal C_T</math>의 사상 <math>X\to Y</math>는 <math>\mathcal C</math> 속의 사상 <math>X\to TY</math>이다.
* <math>\mathcal C_T</math>에서 사상의 합성은 다음과 같다. 임의의 <math>f\in\hom_{\mathcal C}(X,TY)=\hom_{\mathcal C_T}(X,Y)</math>, <math>g\colon\hom_{\mathcal C}(Y,TZ)=\hom_{\mathcal T_C}(Y,Z)</math>에 대하여,
*: <math>g\circ_Tf=\mu_Z\circ Tg\circ f\in\hom_{\mathcal C}(X,TZ)=\hom_{\mathcal C_T}(X,Z)</math>
* <math>\mathcal C_T</math>에서의 항등 사상은 모나드 항등원이다.
*: <math>\operatorname{id}_{X_T}=\eta_X\in\hom_{\mathcal C}(X,TX)=\hom_{\mathcal C_T}(X,X)</math>
이 경우, 자연스럽게 함자
:<math>F\colon\mathcal C\to\mathcal C_T</math>
:<math>F\colon X\mapsto X</math>
:<math>F\colon (f\colon X\to Y)\mapsto(\eta_Y\circ f)</math>
및
:<math>G\colon\mathcal C_T\colon\mathcal C</math>
:<math>G\colon X\mapsto X</math>
:<math>G\colon (f\colon X\to TY)\mapsto \mu_Y\circ Tf</math>
를 정의할 수 있다. 이들은 수반 함자를 이룬다.
:<math>F\dashv G</math>
또한
:<math>T=G\circ F</math>
이므로 <math>(T,\eta,\mu)</math>는 수반 <math>(F,G)</math>에 대응하는 모나드이다. 클라이슬리 범주의 원소는 [[보편대수학]]의 [[자유 대수]]를 일반화하는 것으로 생각할 수 있다.

클라이슬리 범주는 스위스의 수학자 하인리히 클라이슬리({{llang|de|Heinrich Kleisli}}, 1930~2011)가 도입하였다.

==== 에일렌베르크-무어 범주 ====
범주 <math>\mathcal C</math> 위의 모나드 <math>(T,\eta,\mu)</math>의 '''에일렌베르크-무어 범주''' <math>\mathcal C^T</math>는 <math>T</math> 위의 대수와 [[준동형]]들의 범주이다. 이에 대하여, 다음과 같은 망각 함자를 정의할 수 있다.
:<math>G\colon\mathcal C^T\to\mathcal C</math>
:<math>G\colon (A,\operatorname{eval}_A)\mapsto A</math>
:<math>G\colon \left(f\colon(A,\operatorname{eval}_A)\to(B,\operatorname{eval}_B)\right)\mapsto(f\colon A\to B)</math>
마찬가지로, 다음과 같은 자유 대수 함자를 정의할 수 있다.
:<math>F\colon\mathcal C\to\mathcal C^T</math>
:<math>F\colon X\mapsto (TX,\mu_X)</math>
:<math>F\colon (f\colon X\to Y)\mapsto\left(Tf\colon(TX,\mu_X)\to(TY,\mu_Y)\right)</math>
이들은 [[수반 함자]]를 이룬다.
:<math>F\dashv G</math>
또한
:<math>T=G\circ F</math>
이므로, <math>(T,\eta,\mu)</math> 역시 <math>(F,G)</math>에 대응하는 모나드이다.

에일렌베르크-무어 범주는 [[사무엘 에일렌베르크]]와 [[존 콜먼 무어]]가 도입하였다.

==== 모나드 함자 ====
수반 함자 <math>F\colon\mathcal C\to\mathcal D\colon G</math>에서, 만약 <math>\mathcal D</math>가 에일렌베르크-무어 범주 <math>\mathcal C^{G\circ F}</math>와 [[범주의 동치|동치]]라면, <math>G</math>를 '''모나드 함자'''({{llang|en|monadic functor}})라고 한다. '''벡 모나드성 정리'''({{llang|en|Beck’s monadicity theorem}})에 의하면, 함자 <math>G\colon\mathcal D\to\mathcal C</math>가 모나드 함자가 되는 것은 다음 네 조건을 충족시키는 것과 [[동치]]이다.
* <math>G</math>은 [[왼쪽 수반 함자]]를 갖는다.
* <math>G</math>는 [[동형 사상]]을 반사시킨다. 즉, <math>\mathcal D</math>의 사상 <math>f</math>에 대하여 만약 <math>Gf</math>가 <math>\mathcal C</math>의 [[동형 사상]]이라면, <math>f</math> 역시 <math>\mathcal D</math>의 동형 사상이다.
* <math>\mathcal D</math>는 모든 <math>G</math>-분할 평행쌍의 [[쌍대동등자]]를 갖는다.
* <math>G</math>는 <math>\mathcal D</math>의 모든 <math>G</math>-분할 평행쌍의 [[쌍대동등자]]를 보존한다.
이는 조너선 목 벡({{llang|en|Jonathan Mock Beck}}, 1935~2006)이 1967년 경 증명하였다.

== 예 ==
범주 <math>\mathcal C</math> 위의 항등 함자 <math>\operatorname{id}_{\mathcal C}\colon\mathcal C\to\mathcal C</math>는 모나드이다. 이 모나드 위의 대수는 ([[항등 사상]]이 갖추어진) <math>\mathcal C</math>의 대상 <math>(A,\operatorname{id}_A)</math>이다.

=== 폐포 ===
모나드의 대표적인 예는 [[폐포 (위상수학)|폐포]] 연산자이다. [[위상 공간 (수학)|위상 공간]] <math>X</math>의 집합들과 그 포함관계들의 범주 <math>\mathcal P(X)</math>를 생각하자. 그렇다면 폐포 연산자 <math>\operatorname{cl}\colon\mathcal P(X)\to\mathcal P(X)</math>는 함자를 이루며, 또한 다음과 같은 [[자연 변환]]들이 존재한다.
* (<math>\eta</math>) <math>S\subset\operatorname{cl}(S)</math>
* (<math>\mu</math>) <math>\operatorname{cl}(\operatorname{cl}(S))=\operatorname{cl}(S)</math>
이들은 모나드 공리들을 만족시킨다. 따라서 닫힘 연산자는 <math>\mathcal P(X)</math>의 모나드다. 이 모나드 위의 대수는 [[닫힌집합]]이다.

=== 대수 구조 다양체 ===
모나드의 다른 예로, [[대수 구조 다양체]]를 들 수 있다. 대수 구조 다양체 <math>V</math>가 주어졌을 때, 함자 <math>T\colon\operatorname{Set}\to\operatorname{Set}</math>를 다음과 같이 정의하자.
* 집합 <math>S</math>에 대하여, <math>TS</math>는 <math>S</math>로부터 생성되는 자유 대수이다.
* 함수 <math>f\colon S\to S'</math> 및 항 <math>t\in TS</math>에 대하여, <math>Tf(t)\in S'</math>는 <math>t</math> 속에 등장하는 모든 상수 <math>s\in S</math>를 <math>f(s)</math>로 치환하여 얻는 항이다.
이 경우, 다음과 같이 모나드의 구조를 줄 수 있다.
* <math>\mu_S\colon TTS\to TS</math>는 대수 <math>TS</math> 위의 자유 대수 <math>TTS</math>에서, <math>TS</math>에서 성립하는 등식들에 대하여 몫을 취하는 준동형이다.
* <math>\eta_S\colon S\to TS</math>는 <math>s\in S</math>를, 하나의 상수로만 구성된 항으로 대응시킨다.
<math>T</math> 위의 대수는 <math>V</math>에 속한 [[대수 구조]]이다.

=== 수반 함자 ===
[[수반 함자]]
:<math>F\colon\mathcal C\to\mathcal D</math>
:<math>G\colon\mathcal D\to\mathcal C</math>
:<math>F\dashv G</math>
:<math>\eta\colon\operatorname{id}_{\mathcal D}\Rightarrow G\circ F</math>
:<math>\epsilon\colon F\circ G\Rightarrow \operatorname{id}_{\mathcal C}</math>
가 주어졌을 때,
:<math>G\circ F\colon\mathcal C\to\mathcal C</math>
는 항상 모나드를 이룬다. 이 경우, 모나드 항등 사상은 <math>\eta</math>이며, 모나드 합성 사상은
:<math>G\epsilon F\colon G\circ F\circ G\circ F\Rightarrow G\circ F</math>
이다.

=== 콤팩트 하우스도르프 공간 ===
집합 <math>S</math>에 대하여, <math>TS</math>가 <math>S</math> 위의 모든 [[극대 필터]]들의 집합이라고 하자. 함수 <math>S\to S'</math>에 대하여
:<math>Tf\colon TS\to TS'</math>
:<math>Tf\colon\mathcal U\mapsto\{f(U)\colon U\in\mathcal U\}</math>
로 놓으면, <math>T\colon\operatorname{Set}\to\operatorname{Set}</math>는 함자를 이룬다.

여기에 다음과 같은 [[자연 변환]]을 정의하자.
:<math>\eta\colon\operatorname{id}_{\operatorname{Set}}\Rightarrow T</math>
:<math>\eta_S\colon s\mapsto\uparrow s=\{U\subseteq\mathcal S\colon s\in U\}</math>
:<math>\mu\colon TT\Rightarrow T</math>
:<math>V\in\mu_S(\mathfrak U)\iff\uparrow V=\{\mathcal F\in TS\colon V\in\mathcal F\}\in\mathfrak U</math>
그렇다면 이는 집합의 범주 위의 모나드를 이룬다.

이 모나드 위의 대수는 [[콤팩트 공간|콤팩트]] [[하우스도르프 공간]]과 같다. 구체적으로, <math>(S,\lim)</math>가 <math>T</math> 위의 대수라고 하자. 그렇다면, <math>S</math> 위에, 다음 조건을 만족시키는 [[위상 공간 (수학)|위상]]을 줄 수 있다.
* 임의의 [[극대 필터]] <math>\mathcal U\in TS</math>에 대하여, <math>\lim\mathcal U\in S</math>는 <math>S</math> 위의 위상에 따른 수렴과 일치한다.
이러한 위상은 유일하며, 또한 콤팩트 하우스도르프 위상임을 보일 수 있다.

이 모나드는 다음과 같은 [[수반 함자]]로부터 유래한다.
:<math>|\cdot|\colon\operatorname{CompHaus}\to\operatorname{Set}</math>
:<math>\beta\colon\operatorname{Set}\to\operatorname{CompHaus}</math>
:<math>\beta\dashv|\cdot|</math>
여기서 <math>\operatorname{CompHaus}</math>는 콤팩트 하우스도르프 공간 및 [[연속 함수]]의 범주이고, <math>|\cdot|</math>은 콤팩트 하우스도르프 공간을 그 점들의 집합으로 대응시키는 함자이며, <math>\beta</math>는 어떤 집합에 [[이산 위상]]을 부여한 뒤 그 [[스톤-체흐 콤팩트화]]를 취하는 함자이다.

== 역사 ==
[[로제 고드망]]이 1958년에 ‘표준 작도’({{llang|fr|construction standard}})라는 이름으로 도입하였다.<ref>{{서적 인용|이름=R.|성=Godement|저자링크=로제 고드망|제목=Topologie algébrique et théorie des faisceaux|출판사=Hermann & Cie|날짜=1958|판=1|총서=Actualités scientifiques et industrielles|권=1252|zbl= 0080.16201|언어=fr}}</ref> 이후 "삼중"({{llang|en|triple}})이라는 이름으로 불리기도 했는데, 이는 모나드의 구성 성분 <math>(T,\mu,\eta)</math>이 셋인 것에서 유래하였다. 이후 장 베나부({{llang|fr|Jean Bénabou}})는 ‘모나드’라는 용어를 도입하였고, [[손더스 매클레인]]은 저서에서 이 용어를 사용하였다.
{{인용문2|이러한 뜻으로 ‘삼중’을 사용하는 것은 순서 삼중쌍과 쓸데없이 혼동을 극대화시켰다. 또한, ‘삼중 유도 함자’ 따위의 용어는 세상 어느 것으로부터도 세 번 거듭해서 유도된 함자가 아니다. 따라서 대신 ‘모나드’라는 용어를 사용하겠다.
{{lang|en|The frequent but unfortunate use of the word “triple” in this sense has achieved a maximum of needless confusion, what with the conflict with ordered triple, plus the use of associated terms such as “triple derived functors” for functors which are not three times derived from anything in the world. Hence the term monad.}}
|<ref name="Mac Lane">{{서적 인용 |last=Mac Lane |first=Saunders |저자링크=손더스 매클레인|제목=Categories for the working mathematician |publisher=Springer |날짜=1998 |판=2 |series=Graduate Texts in Mathematics|issn=0072-5285|권= 5 |isbn=978-1-4419-3123-8 | zbl=0906.18001 | mr=1712872 |doi=10.1007/978-1-4757-4721-8|언어=en }}</ref>{{rp|138}}}}

== 응용 ==
[[하스켈]] 등 함수형 프로그래밍 언어에서 입출력 및 데이터 구조를 다룰 때 쓰인다.

== 각주 ==
{{각주}}
* {{저널 인용|제목=The category theoretic understanding of universal algebra: Lawvere theories and monads|doi=10.1016/j.entcs.2007.02.019|이름= Martin|성=Hyland|이름2=John|성2=Power|저널=Electronic Notes in Theoretical Computer Science|권=172|날짜=2007-04-01|쪽=437–458|언어=en}}

== 외부 링크 ==
* {{eom|title=Triple}}
* {{eom|title=Standard construction}}
* {{nlab|id=monad|title=Monad}}
* {{nlab|id=comonad|title=Comonad}}
* {{nlab|id=adjoint monad|title=Adjoint monad}}
* {{nlab|id=module over a monad|title=Module over a monad}}
* {{nlab|id=monad with arities|title=Monad with arities}}
* {{nlab|id=monoidal monad|title=Monoidal monad}}
* {{nlab|id=cartesian monad|title=Cartesian monad}}
* {{nlab|id=finitary monad|title=Finitary monad}}
* {{nlab|id=monadicity theorem|title=Monadicity theorem}}
* {{nlab|id=Kleisli category}}
* {{nlab|id=Eilenberg-Moore category}}
* {{웹 인용|url=http://permalink.gmane.org/gmane.science.mathematics.categories/214|제목=Re: Where does the term monad come from?|이름=Michael|성=Barr|출판사=Category Theory List|날짜=2009-04-01|언어=en|확인날짜=2015-06-29|보존url=https://web.archive.org/web/20141110101959/http://permalink.gmane.org/gmane.science.mathematics.categories/214|보존날짜=2014-11-10|url-status=dead}}

{{전거 통제}}

[[분류:수반 함자]]