单子 (范畴论)

数学的分支范畴论中，单子（monad），又称三元组（triple, triad）、标准构造（standard construction）、基本构造（fundamental construction），是一个endofunctor（即由某范畴映到自身的函子），连同满足特定coherence condition的两个自然变换，三者构成的整体。单子用于研究互为伴随的函子对，并将偏序集上的闭包算子推广到任意范畴。

**导论与定义**
单子是一类endofunctor（连同其他资讯）。例如，若和为一对伴随函子，为的左伴随，则复合是单子。若与互为逆函子，则对应的单子是恒等函子。一般而言，伴随关系并不等同范畴的等价，而可以联系不同性质的范畴。为了探讨伴随关系所「保持」的性质，数学家研究单子论。理论的另一半，即藉考虑，以研究伴随关系，是单子论的对偶理论。该类函子称为余单子（comonad）。

**严格定义**
本条目中，皆表示某范畴。上的单子是函子，连同两个自然变换，分别是单位（其中是上的恒等函子）与乘法（其中是复合，亦是到的函子），且要满足下列coherence condition：- （左右皆为的自然变换）。此处与经水平复合而得。- （两者皆为的自然变换）。此处表示由函子到自身的恒等自然变换。
以上两式，亦可以下列交换图复述：
记号与的含义，参见自然变换，又或考虑以下更具体的写法，不用水平复合记号，并将各函子作用在任意物件上：
定义中，若将当成幺半群的乘法，则第一条公理类似幺半群的乘法结合律，而第二条公理类似单位元的存在性（由给出）。准确而言，上的单子，可以等价地定义为的内函子范畴中的幺半群。（该范畴的物件是上的内函子，而态射是内函子间的自然变换，幺半结构来自内函子的复合运算。）如此，单子不仅在形式上具有与幺半群相似的公理，甚而单子就是幺半群的特例。

**幂集单子**
幂集单子是集合范畴上的单子。其定义中，函子取为幂集运算，即为集合的幂集，而对于函数，将的子集映至其像集，即。对每个集合，有函数，对每个元素映至单元子集， 并有函数

将的若干个子集构成的族，映至该些子集的并集。以上是幂集单子的定义。
两个单子的复合，未必为单子。举例，幂集单子的二次叠代，无法配备单子结构。

**余单子**
取上节定义的范畴论对偶，便是余单子（或余三元组）的定义。简单复述，范畴上的余单子，是opposite category上的单子。所以，余单子是由到的某个函子，连同余单位与余乘法（counit and comultiplication）两个自然变换，组成的整体，而三者所要满足的公理，是将原定义中所有态射反转方向而得。
单子之于幺半群，如同余单子之于余幺半群。每个集合皆是余幺半群，且仅有唯一一种方式，所以抽象代数中，较少考虑余幺半群。然而，在线性代数中，向量空间范畴（配备张量积）的余幺半群较为重要，以余代数之名为人所知。

**历史**
单子的概念最早由Roger Godement于1958年提出，当时称为「标准构造」（standard construction）。实际上，该书用到的是余单子，用作解决某个问题。
其后，单子又出现于彼得·胡伯（Peter Huber）对范畴同伦的研究中。该论文包含由任意一对伴随函子得出单子的证明。
1965年，Heinrich Kleisli，及塞缪尔·艾伦伯格、John Coleman Moore二人分别独立证明反向的结论，即每个单子皆可由某对伴随函子产生。后一篇论文中，将单子称为「三元组」。
1963年，William Lawvere提出泛代数的范畴论。1966年，弗雷德·林顿（Fred Linton）将该理论用单子的语言表达。单子本身来自拓扑方面的考量，事先似乎比洛维尔的理论更难处理，但已成为用范畴论语言阐述泛代数的方法中，较常见的一个。现今常用的英文名称monad是1971年由桑德斯·麦克兰恩在《Categories for the Working Mathematician》引入，以其类似单子论中的同名哲学概念，即某种能生出其他所有事物的实体。
1980年代，Eugenio Moggi在理论计算机科学中，利用单子，为电脑程式的若干方面建立模型，包括例外处理、边界情况。此后，有多种函数式编程语言仔细实作此想法，作为一种基本规律，同样称为单子。2001年，若干数学家注意到，用单子研究程式标志语意的方法，与洛维尔的理论，两者之间有关联。。此为代数与语义间的联系，是后来活跃的研究课题。

**例子**

**伴随的复合**
若有伴随关系

（即为的左伴随，下同），则由此有上的单子。此普遍的构造，取内函子为复合

而单位自然变换来自伴随的单位，乘法自然变换源自伴随的余单位：

反之，给定单子，可以明确找回一对伴随函子，使单子为该对伴随函子的复合。此构造用到下节定义的代数的艾伦伯格－摩尔范畴。

**两重对偶**
给定域，双重对偶单子（double dualisation monad）源自伴随关系

其中两个函子皆将向量空间映至对偶空间，所以对应的单子将向量空间映至双对偶。1970对此有更广泛的讨论。

**偏序集的闭包算子**
偏序集可以视为特殊的范畴，任意两件物件之间有最多一支态射，且到有态射当且仅当偏序中。于是，偏序集之间的函子，即是保序映射，而伴随函子对，则组成两偏序集间的伽罗瓦连接，相应的单子是伽罗华连接的闭包算子。

**自由遗忘伴随**
又举例，设为群范畴至集合范畴的遗忘函子，将群映至其基集，又设为自由函子，由到，则是的左伴随。此时，对应的单子的作用是，输入一个集合，输出自由群的基集，即字母取自，且无相邻两个字母互为逆元的字串的集合。
该单子的单位变换，由包含映射

给出，该包含映射将的任意元素，看成仅得一个字元的字串，从而是的元素。最后，单子的乘法

是串接或「压平」运算，将若干条字串组成的串，映至该串中所有字串前后连接而成的一条字串。至此描述完单子的两个自然变换。
前述例子中，自由群可以推广至其他种类的代数结构，即泛代数意义下的任意一簇代数。如此，每类代数定义了集合范畴上的一个单子。更重要的是，该类代数的范畴，可从单子找回，即单子的艾伦伯格－摩尔代数范畴，故单子可视为泛代数之簇的推广。
另外，尚有一个单子源自伴随关系。在向量空间范畴上，若表示将向量空间映至其张量代数的内函子，则相应有单位自然变换将嵌入到其张量代数，并有乘法自然变换，在处的分量是态射，将张量积之张量积展开化简。

**余密度单子**
只要满足某些不强的条件，无左伴随的函子也可以产生单子，称为codensity monad。例如，从有限集合范畴到集合范畴的包含函子无法配备左伴随，但其余密度单子定义在上，将任意集合映至其上所有超滤子的集合。 类似例子见于2013。

**单子的代数**
给定范畴上的单子，可以考虑中的代数物件。在该些物件上的作用，与单子的单位与乘法相容。具体而言，代数是中的物件，连同态射（称为该代数的结构映射），使得图
皆可交换。
代数间的态射是中的态射，且要使center可交换。于是，代数及之间的态射组成范畴，称为艾伦伯格－摩尔范畴（Eilenberg–Moore category），记为.

**例子**

**自由群单子上的代数**
若为前述自由群单子，则代数是集合，连同由生成的自由群到的映射（求值，evaluation），且该映射要满足结合律与单位元的公理。换言之，本身就具有群结构，而至的映射，是将字串按的群乘法，计算所得的结果

**分布单子上的代数**
另一个例子是集合范畴上的分布单子（distribution monad），其将集合映至其上所有有限支撑的概率分布的集合。该等分布，是函数，仅于有限多个元素处取值非零，而各元素处取值之和为。以符号表示，

可由定义证明，分布单子上的代数，等同于凸集，即集合要配备二元运算（对每个），满足的公理比照欧氏空间中，凸组合具备的性质。

**对称单子上的代数**
另一个有用的单子，是交换环的模范畴上的对称代数单子

将模映到各阶symmetric tensor幂的直和

其中。例如，，左右两边作为模同构。如此，对称代数单子上的代数，是交换代数。类似地，也有反对称张量单子与全张量单子，相应的代数分别是反对称代数与自由代数，故

前者是上添加个生成元的自由反对称代数，而后者则是个生成元的自由代数。

**E∞环谱中的交换代数**
对于，亦有类似的构造，113对于可交换代数，对应单子上的代数是可交换的代数。若表示模的范畴，则可以考虑函子，定义为

其中

此函子是单子，而由该单子上的代数范畴，可以得到可交换代数的范畴。

**单子与伴随**
如前文所述，任何伴随关系皆产生单子。反之，每个单子皆可由某个伴随关系产生，即原范畴与代数的艾伦伯格－摩尔范畴之间的自由－遗忘伴随

其中，左伴随将的物件映到自由代数，右伴随则将代数遗忘掉，变回。然而，通常有多组不同的伴随关系产生同样的单子，该些伴随关系组成范畴：物件是伴随关系使得，而态射是在一侧为恒等函子的伴随关系态射。如此，艾伦伯格－摩尔范畴的自由－遗忘伴随是的终物件，而始物件是Kleisli category，定义为中的自由代数组成的完全子范畴，即仅包含形如的代数，其中历遍的物件。

**单子伴随**
设有伴随关系，对应单子为，则函子可分解为

其中是遗忘函子。换言之，对中任意物件，都能赋予自然的代数结构。若分解式中，首个函子给出与两范畴间的等价，则形容该伴随关系为单子的（monadic）。后亦引申用作形容函子，若函子有左伴随，且该伴随关系为单子的，则亦称为单子的。例如，群范畴与集合范畴间的自由－遗忘伴随是单子的，因为相应单子上的代数是群（见前文）。一般而言，若有伴随关系为单子的，则单从的物件及其上的作用，已足以重组出的物件。

**贝克单子性定理**
贝克单子性定理给出伴随关系在何种充要条件下为单子的。定理有以下简化版：
若满足以下三项条件：
*为conservative functor，换言之，反映同构（reflects isomorphisms），即对中每一支态射，其为同构当且仅当在作用下的像为中的同构；
*有coequalizer；
*保coequalizer；
则为单子的。
例如，由紧豪斯多夫空间范畴到集合范畴的遗忘函子是单子的。然而，由任意拓扑空间范畴到集合范畴的遗忘函子则并非单子的，而定理中，保守函子的条件不成立，因为有非紧或非豪斯多夫空间，之间存在连续双射，但不为同胚。
贝克定理有对偶版本，刻划余单子伴随关系，对拓扑斯论及有关下降的代数几何课题有用。
余单子的伴随关系，首先有下列例子：

其中皆为交换环，左伴随用到的张量积的定义中，选定了环同态，而右伴随是遗忘函子。根据贝克定理，当且仅当为忠实平坦模时，该伴随为余单子的。所以，可将配备下降数据（descent datum，即源自伴随关系的余单子的作用）的模，降成模。所得的faithfully flat descent理论，广泛应用于代数几何。

**用途**
函数式编程中，会使用单子表达某类（有时有副作用的）顺序式计算，见单子 (函数式编程)。
范畴论逻辑中，藉闭包算子、内代数，以及两者与S4模态逻辑、直觉主义逻辑的关系，能以单子余单子理论类比模态逻辑。

**推广**
亦可定义2-范畴中的单子。

**参见**
 Distributive law between monads- Lawvere theory- 单子 (函数式编程)- Polyad- Strong monad

**参考文献**
 dead-url=no- language = en- language = en- ref = harv- cite book | editor1-last=Pedicchio | editor1-first=Maria Cristina | editor2-last=Tholen | editor2-first=Walter | title=Categorical Foundations. Special Topics in Order, Topology, Algebra, and Sheaf Theory |trans-title = 范畴基础。序、拓扑、代数、层论特别专题| series=Encyclopedia of Mathematics and Its Applications | volume=97 | location=Cambridge | publisher=Cambridge University Press | year=2004 | isbn=0-521-83414-7 | zbl=1034.18001 |language = en - ref = harv- dead-url=no