数学的分支范畴论中,单子(英语:monad),又称三元组(triple, triad)、标准构造(standard construction)、基本构造(fundamental construction)[1],是一个内函子(即由某范畴映到自身的函子),连同满足特定连贯条件的两个自然变换,三者构成的整体。单子用于研究互为伴随的函子对,并将偏序集上的闭包算子推广到任意范畴。
导论与定义
单子是一类内函子(连同其他资讯)。例如,若和为一对伴随函子,为的左伴随,则复合是单子。若与互为逆函子,则对应的单子是恒等函子。一般而言,伴随关系并不等同范畴的等价,而可以联系不同性质的范畴。为了探讨伴随关系所“保持”的性质,数学家研究单子论。理论的另一半,即藉考虑,以研究伴随关系,是单子论的对偶理论。该类函子称为余单子(英语:comonad)。
本条目中,皆表示某范畴。上的单子是函子,连同两个自然变换,分别是单位(其中是上的恒等函子)与乘法(其中是复合,亦是到的函子),且要满足下列连贯条件:
- (左右皆为的自然变换)。此处与经水平复合而得。
- (两者皆为的自然变换)。此处表示由函子到自身的恒等自然变换。
以上两式,亦可以下列交换图复述:
记号与的含义,参见自然变换,又或考虑以下更具体的写法,不用水平复合记号,并将各函子作用在任意物件上:
定义中,若将当成幺半群的乘法,则第一条公理类似幺半群的乘法结合律,而第二条公理类似单位元的存在性(由给出)。准确而言,上的单子,可以等价地定义为的内函子范畴中的幺半群。(该范畴的物件是上的内函子,而态射是内函子间的自然变换,幺半结构来自内函子的复合运算。)如此,单子不仅在形式上具有与幺半群相似的公理,甚而单子就是幺半群的特例。
幂集单子是集合范畴上的单子。其定义中,函子取为幂集运算,即为集合的幂集,而对于函数,将的子集映至其像集,即。对每个集合,有函数,对每个元素映至单元子集, 并有函数
将的若干个子集构成的族,映至该些子集的并集。以上是幂集单子的定义。
两个单子的复合,未必为单子。举例,幂集单子的二次迭代,无法配备单子结构。[2]
取上节定义的范畴论对偶,便是余单子(或余三元组)的定义。简单复述,范畴上的余单子,是对偶范畴上的单子。所以,余单子是由到的某个函子,连同余单位与余乘法(英语:counit and comultiplication)两个自然变换,组成的整体,而三者所要满足的公理,是将原定义中所有态射反转方向而得。
单子之于幺半群,如同余单子之于余幺半群。每个集合皆是余幺半群,且仅有唯一一种方式,所以抽象代数中,较少考虑余幺半群。然而,在线性代数中,向量空间范畴(配备张量积)的余幺半群较为重要,以余代数之名为人所知。
此章节需要扩充:中文名称“单子”由来 |
单子的概念最早由罗杰·戈德芒于1958年提出[3],当时称为“标准构造”(英语:standard construction)。实际上,该书用到的是余单子,用作解决某个层余调问题。
其后,单子又出现于彼得·胡伯(Peter Huber)对范畴同伦的研究中。该论文包含由任意一对伴随函子得出单子的证明。[4]
1965年,海因里希·克莱斯利[5],及塞缪尔·艾伦伯格、约翰·柯曼·摩尔二人[6]分别独立证明反向的结论,即每个单子皆可由某对伴随函子产生。后一篇论文中,将单子称为“三元组”。
1963年,威廉·洛维尔提出泛代数的范畴论。1966年,弗雷德·林顿(Fred Linton)将该理论用单子的语言表达。[7]单子本身来自拓扑方面的考量,事先似乎比洛维尔的理论更难处理,但已成为用范畴论语言阐述泛代数的方法中,较常见的一个。现今常用的英文名称monad是1971年由桑德斯·麦克兰恩在《现职数学家用的范畴》引入,以其类似单子论中的同名哲学概念,即某种能生出其他所有事物的实体。
1980年代,欧金尼奥·莫吉在理论计算机科学中,利用单子,为计算机程序的若干方面建立模型,包括例外处理、边界情况。[8]此后,有多种函数式编程语言仔细实作此想法,作为一种基本规律,同样称为单子。2001年,若干数学家注意到,用单子研究程式标志语意的方法,与洛维尔的理论,两者之间有关联。[9]。此为代数与语义间的联系,是后来活跃的研究课题。
例子
若有伴随关系
(即为的左伴随,下同),则由此有上的单子。此普遍的构造,取内函子为复合
而单位自然变换来自伴随的单位,乘法自然变换源自伴随的余单位:
反之,给定单子,可以明确找回一对伴随函子,使单子为该对伴随函子的复合。此构造用到下节定义的代数的艾伦伯格-摩尔范畴。[10]
给定域,双重对偶单子(英语:double dualisation monad)源自伴随关系
其中两个函子皆将向量空间映至对偶空间,所以对应的单子将向量空间映至双对偶。Kock (1970)对此有更广泛的讨论。
偏序集可以视为特殊的范畴,任意两件物件之间有最多一支态射,且到有态射当且仅当偏序中。于是,偏序集之间的函子,即是保序映射,而伴随函子对,则组成两偏序集间的伽罗瓦连接,相应的单子是伽罗华连接的闭包算子。
又举例,设为群范畴至集合范畴的遗忘函子,将群映至其基集,又设为自由函子,由到,则是的左伴随。此时,对应的单子的作用是,输入一个集合,输出自由群的基集,即字母取自,且无相邻两个字母互为逆元的字串的集合。
该单子的单位变换,由包含映射
给出,该包含映射将的任意元素,看成仅得一个字元的字串,从而是的元素。最后,单子的乘法
是串接或“压平”运算,将若干条字串组成的串,映至该串中所有字串前后连接而成的一条字串。至此描述完单子的两个自然变换。
前述例子中,自由群可以推广至其他种类的代数结构,即泛代数意义下的任意一簇代数。如此,每类代数定义了集合范畴上的一个单子。更重要的是,该类代数的范畴,可从单子找回,即单子的艾伦伯格-摩尔代数范畴,故单子可视为泛代数之簇的推广。
另外,尚有一个单子源自伴随关系。在向量空间范畴上,若表示将向量空间映至其张量代数的内函子,则相应有单位自然变换将嵌入到其张量代数,并有乘法自然变换,在处的分量是态射,将张量积之张量积展开化简。
只要满足某些不强的条件,无左伴随的函子也可以产生单子,称为余密度单子。例如,从有限集合范畴到集合范畴的包含函子无法配备左伴随,但其余密度单子定义在上,将任意集合映至其上所有超滤子的集合。 类似例子见于Leinster (2013)。
单子的代数
给定范畴上的单子,可以考虑中的代数物件。在该些物件上的作用,与单子的单位与乘法相容。具体而言,代数是中的物件,连同态射(称为该代数的结构映射),使得图
及 |
皆可交换。
代数间的态射是中的态射,且要使
可交换。于是,代数及之间的态射组成范畴,称为艾伦伯格-摩尔范畴(英语:Eilenberg–Moore category),记为.
若为前述自由群单子,则代数是集合,连同由生成的自由群到的映射(求值,evaluation),且该映射要满足结合律与单位元的公理。换言之,本身就具有群结构,而至的映射,是将字串按的群乘法,计算所得的结果
另一个例子是集合范畴上的分布单子(英语:distribution monad),其将集合映至其上所有有限支撑的概率分布的集合。该等分布,是函数,仅于有限多个元素处取值非零,而各元素处取值之和为。以符号表示,
可由定义证明,分布单子上的代数,等同于凸集,即集合要配备二元运算(对每个),满足的公理比照欧氏空间中,凸组合具备的性质。[11][12]
另一个有用的单子,是交换环的模范畴上的对称代数单子
将模映到各阶对称张量幂的直和
其中。例如,,左右两边作为模同构。如此,对称代数单子上的代数,是交换代数。类似地,也有反对称张量单子与全张量单子,相应的代数分别是反对称代数与自由代数,故
前者是上添加个生成元的自由反对称代数,而后者则是个生成元的自由代数。
对于可交换代数,亦有类似的构造,[13]:113对于可交换代数,对应单子上的代数是可交换的代数。若表示模的范畴,则可以考虑函子,定义为
其中
此函子是单子,而由该单子上的代数范畴,可以得到可交换代数的范畴。
单子与伴随
如前文所述,任何伴随关系皆产生单子。反之,每个单子皆可由某个伴随关系产生,即原范畴与代数的艾伦伯格-摩尔范畴之间的自由-遗忘伴随
其中,左伴随将的物件映到自由代数,右伴随则将代数遗忘掉,变回。然而,通常有多组不同的伴随关系产生同样的单子,该些伴随关系组成范畴:物件是伴随关系使得,而态射是在一侧为恒等函子的伴随关系态射。如此,艾伦伯格-摩尔范畴的自由-遗忘伴随是的终物件,而始物件是克莱斯利范畴,定义为中的自由代数组成的完全子范畴,即仅包含形如的代数,其中历遍的物件。
设有伴随关系,对应单子为,则函子可分解为
其中是遗忘函子。换言之,对中任意物件,都能赋予自然的代数结构。若分解式中,首个函子给出与两范畴间的等价,则形容该伴随关系为单子的(英语:monadic)。[14]后亦引申用作形容函子,若函子有左伴随,且该伴随关系为单子的,则亦称为单子的。例如,群范畴与集合范畴间的自由-遗忘伴随是单子的,因为相应单子上的代数是群(见前文)。一般而言,若有伴随关系为单子的,则单从的物件及其上的作用,已足以重组出的物件。
贝克单子性定理给出伴随关系在何种充要条件下为单子的。定理有以下简化版:
若满足以下三项条件:
- 为保守函子,换言之,反映同构(英语:reflects isomorphisms),即对中每一支态射,其为同构当且仅当在作用下的像为中的同构;
- 有余等化子;
- 保余等化子;
则为单子的。
例如,由紧豪斯多夫空间范畴到集合范畴的遗忘函子是单子的。然而,由任意拓扑空间范畴到集合范畴的遗忘函子则并非单子的,而定理中,保守函子的条件不成立,因为有非紧或非豪斯多夫空间,之间存在连续双射,但不为同胚。[15] 贝克定理有对偶版本,刻划余单子伴随关系,对拓扑斯论及有关下降的代数几何课题有用。
余单子的伴随关系,首先有下列例子:
其中皆为交换环,左伴随用到的张量积的定义中,选定了环同态,而右伴随是遗忘函子。根据贝克定理,当且仅当为忠实平坦模时,该伴随为余单子的。所以,可将配备下降数据(英语:descent datum,即源自伴随关系的余单子的作用)的模,降成模。所得的忠实平坦下降理论,广泛应用于代数几何。
用途
函数式编程中,会使用单子表达某类(有时有副作用的)顺序式计算,见单子 (函数式编程)。
推广
亦可定义2-范畴中的单子。
参见
- 单子间的分配律
- 洛维尔理论
- 单子 (函数式编程)——函数式编程中,用作构造通用类型的设计模式
- 多子 (范畴论)
- 强单子
参考文献
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.