泛代数

泛代数，也称普适代数学（Universal algebra），研究通用于所有代数结构的理论，而不是代数结构的模型。举个例子，并不是将特殊的个别的群作为个体分别来学习，而是将整个群论的理论作为学习的主题。

## 基本思想

从泛代数角度来看，代数是拥有一组算子的集合A。在A上的n元运算是以n个A的元素为输入并返回一个A的元素的函数。这样，0元运算（空运算）可简单表示为A的一个元素或常数，通常用a表示。一元运算是简单的从A到A的函数，常用置于参数前的符号表示，如~x。二元运算通常用置于参数间的符号表示，如x*y。元数更高或不确定的运算通常用函数符号表示，参数放在括号中，例如f(x, y, z)或f(x1,...,xn)。那么，讨论代数的一种方式就是将其称为某$\Omega$类代数，其中$\Omega$是自然数的有序数列，表示代数运算的元数。不过也有研究者允许无穷元运算，如$\textstyle\bigwedge_{\alpha\in J} x_\alpha$，其中J是无穷指标集，是完全格代数理论中的一种运算。

### 等式

定义了运算后，代数的性质由公理进一步定义，在泛代数中通常用恒等式或等式法则的形式。例如二元运算的结合律，可由等式x ∗ (y ∗ z) = (x ∗ y) ∗ z给出。

## 簇

由等式定义的代数结构集合称作簇或等价类。

将研究范围限制在簇，就排除了

- 量化，包括全称量化（$\forall$，等式前除外）和存在量化 （$\exists$）
- 逻辑与（∧）之外的逻辑运算符
- 等式以外的关系，特别是形如a ≠ b不等式和序理论

等式类研究可看作是模型论的一支，通常处理只有运算的结构（类型中可以有函数的符号，但不能有等式以外的关系的符号）。谈论这种结构的语言只使用等式。

其不包含所有广义代数结构。例如，有序交换群涉及序关系，因此不属于这个范畴。

域类也不属于等式类，因为没有类型能把所有域法则写成等式（域中元素的逆适于所有非零元素，因此不能把逆加入类型中）。

这样限制的一个好处是，泛代数研究的结构可定义在任何具有有限积的范畴中。例如，拓扑群只是拓扑空间范畴中的一个群。

### 例子

大多数泛代数系统都是簇的例子，但不总是很明显，因为通常的定义往往涉及量化或不等式。

#### 群

以群的定义为例。通常，一个群的定义由二元运算*完成，并遵循以下公理：

- 结合律： x ∗ (y ∗ z) = (x ∗ y) ∗ z; &nbsp；形式化：∀x,y,z. x∗(y∗z)=(x∗y)∗z.
- 单位元：存在一个元素e，使得对每个x。都有e ∗ x = x = x ∗ e; &nbsp；形式化：∃e ∀x. e∗x=x=x∗e.
- 逆元素：很容易看出单位元是唯一的，一般记作e。那么对每个x，都有元素i使x ∗ i = e = i ∗ x; &nbsp；形式化：∀x ∃i. x∗i=e=i∗x.

（有人也使用“封闭”公理，即只要x ∗ y都属于A，则x*y也属于，但这里称*为二元运算已经暗示了这一点。）

群的这一定义并不直接符合泛代数，因为单位元和逆元素并非纯粹从“对所有”元素普遍成立的等式规律表述，而还涉及存在量词“存在……”。除了二元运算∗，还可指定空运算e和一元运算~，~x通常写作x−1。这样，公理变为：

- 结合律：x ∗ (y ∗ z) = (x ∗ y) ∗ z.
- 单位元：e ∗ x = x = x ∗ e；形式化：∀x. e∗x=x=x∗e.
- 逆元素：x ∗ (~x) = e = (~x) ∗ x &nbsp；形式化：∀x. x∗~x=e=~x∗x.

总结来说，通常的定义有

- 单一二元运算
- 1个等式法则（结合律）
- 2个量化法则（单位元与逆元）

而按泛代数，则有

- 3种运算：1种二元运算，1种一元运算，1种零运算
- 3个等式法则（结合律、单位元、逆元）
- 没有量化法则（最外层的全称量词除外，这在簇中是允许的）

关键点是，额外的运算没有增加信息，而是唯一地遵循了群的通常定义，虽然没有唯一指定单位元e，但很简单就能证明它是唯一的，每个逆元素也唯一。

泛代数观点非常适合范畴论。例如，在范畴论中定义群对象时，若对象可能不是集合，就必须用到等式法则（在一般范畴中是有意义的），而非量化法则（指单个元素）。此外，逆元和单位元在范畴中被指定为态射。例如，拓扑群中的逆不仅必须逐元素存在，还要给出连续映射（态射）。有人还要求恒等映射也要闭包（上纤维化）。

#### 其他例子

大部分代数结构都可作为泛代数的例子。

- 环、半群、拟群、广群、原群、圈等等。
- 固定域上的向量空间和固定环上的模也是泛代数。它们有二元运算，有一族一元标量乘法运算，域或环中的每个元素都有一个。

关系代数的例子有半格、格与布尔代数。

## 基本构造

假设$\Omega$类固定。泛代数中有三种基本构造：同态像、子代数与积。

两个代数A、B之间的同态是函数h: A → B，使得对A中的每个n元运算fA和对应的B中n元运算fB，都有h(fA(x1,...,xn)) = fB(h(x1),...,h(xn))（若可以看出函数来自哪个代数，则f的上下标就可去掉）。例如，若e是常数（空运算），那么 h(eA) = eB。若~是一元运算，那么h(~x) = ~h(x)。若∗是二元运算，那么h(x ∗ y) = h(x) ∗ h(y)，以此类推。我们可以取代数的同态像h(A)。

A 的子代数是A的子集，对A的所有运算都封闭。某个代数结构集合的积，指的是集合在坐标上定义的运算的笛卡尔积。

## 部分基本定理

- 同构基本定理，包括群、环、模等的同构定理。
- 伯克霍夫HSP定理，其指出，一类代数当且仅当在同态像、子代数与任意直积下封闭时，可以构成簇。

## 动机与应用

除了统一方法之外，泛代数还给出了深奥的定理以及重要的示例和反例，为新代数研究提供了有用的框架。它可以将为某些代数发明的方法转移到其他类的代数，方法是用泛代数（如果可能的话）重新诠释之，然后将其解释为适用于其他类别的方法。它还澄清了概念；正如J.D.H. Smith所说：“在特定框架中看起来杂乱而复杂的东西，在适当的一般框架中可能会变得简单而明显”。

特别是，泛代数可用于幺半群、环和格的研究。在泛代数之前，许多定理（最知名的是同构基本定理）是在所有类别中分别证明的，但有了泛代数，就可以对每种代数系统进行一次性证明。

下面提到的Higgins 1956年的论文为一系列特定代数系统提供了框架而受到广泛关注，而他1963年的论文则对具有仅部分定义运算的代数的讨论而备受瞩目，典型的例子就是范畴和广群。这引出了高维代数的话题，可定义为研究具有部分运算的代数理论，其域是在几何条件下定义的。著名的例子是各种形式的高维范畴和广群。

### 约束满足问题

泛代数为约束满足问题（CSP）提供了一种自然的语言。CSP是一类重要的计算问题：给定关系代数A和其上的句子$\varphi$，如何确定$\varphi$能否在A中得到满足。代数A通常是确定的，因此CSPA指实例仅为存在语句$\varphi$的问题。

可以证明，对某个代数A，每个计算问题都可表为CSPA。

例如，n色问题可表述为代数$\big(\{0,1,\dots,n-1\}, \neq\big)$的CSP，即具有$n$个元素和一个关系式（不等式）的代数。

二分猜想（2017年4月证明）指出，若A是有限代数，则CSPA要么是P问题，要么是NP完全问题。

## 推广

还可用范畴论手段研究泛代数：可用特殊的范畴描述代数结构，称为劳维尔理论或更广义的代数论。相对地，也可用单子描述代数结构。这两种方法密切相关，各有优势。

特别地，每个劳维尔理论都在集合范畴上给出了单子，而集合范畴的任何“有限”单子都产生于某个劳维尔理论。单子描述的是特定范畴（如集合范畴）中的代数结构，而代数论描述的是一大类范畴（即有有限积的范畴）中任何范畴的结构。

范畴论的最新发展是算元论——算元是一系列运算，类似于泛代数，但只允许在带变量的表达式间建立等式，不允许重复或省略变量。因此，环可被描述为某些算元的所谓“代数”，但不能描述为群，因为$g g^{-1} = 1$在左侧重复了变量g，在右侧省略了变量g。起初这似乎是个麻烦的限制，但其结果是，算元有某些优势：例如，可以统一环和向量空间，得到结合代数，但无法统一环和向量空间。

另一处发展是偏代数，其中的运算可以是偏函数。某些偏函数也可通过所谓“本质代数论”的劳维尔理论推广来处理。

泛代数的另一种推广是模型论，有时被描述为“泛代数+逻辑”。

## 外部链接

- Algebra Universalis —a journal dedicated to Universal Algebra.