选择公理

选择公理（Axiom of Choice，缩写AC）是数学中的一条集合论公理，用来证明一些难以明确构造的物件的存在性。选择公理最早于1904年，由恩斯特·策梅洛为了证明良序定理而作为一条公理加入。

非正式地说，给定一些盒子（可以是无限个），每个盒子中都含有至少一个小球，这时选择公理相当于是在说——可以从每个盒子里拿出一颗球。在很多情况下这样的选择并不需要借助选择公理；尤其是在“盒子个数有限”或“盒子内的球具有额外的特征”这两种情况下，经常可以直接指明选择的方式。关于“存在具体的选择方式”可以透过以下例子理解：假设有许多（甚至是无限）双鞋子，则可以选取每双鞋左边的鞋子构成一个具体的选择，由于在鞋子之中“存在具体的选择规则”(左边的鞋子不同于右边的鞋子)，所以即使没有选择公理也依然可以做出具体的选择。但是，如果把鞋子改成袜子，且每双袜子都没有可区分的特征，在这种情况下，“选择的存在性”只能通过选择公理得到。

尽管曾经具有争议，选择公理现在已经被大部分数学家毫无保留地使用着，例如带有选择公理的策梅洛-弗兰克尔集合论（ZFC）。数学家们使用选择公理的原因是，有许多被普遍接受的数学定理，比如是吉洪诺夫定理，都需要选择公理来证明。现代研究集合论的数学家也研究与选择公理相矛盾的公理，例如决定公理。

在一些构造性数学的理论中会避免选择公理的使用，不过也有的将选择公理包括在内。

## 陈述

首先定义几个概念：

集族：指由非空集合组成的集合。

选择函数：它是一个集族上的函数。它规定：对于所有在集族$X$中的集合$s$，$f(s)$是$s$的一个元素。

那么，选择公理表示：

对于所有的集族，均存在选择函数。

上述可表示为：

$$\forall X \left[ \emptyset \notin X \implies \exists f \colon X \rightarrow \bigcup X \quad \forall A \in X \, ( f(A) \in A ) \right] \,.$$

或者：

设$X$是一个集族，则存在着在$X$上定义的一个选择函数$f$。

该定理也可表达为：

集族上的任意笛卡尔积总是非空的。

### 变体

第二个版本的选择公理声称：

给定由相互不交的非空集合组成的任何集合，存在着至少一个集合，它与每个非空集合恰好有一个公共元素。

第三个版本声称：

对于任何集合$A$，$A$的幂集（减去空集）有一个选择函数。

使用这个版本的作者通常谈及“在$A$上的选择函数”，但要注意这里选择函数的概念是稍微不同的。它的定义域是$A$的幂集（减去空集），因此对任何集合$A$有意义；至于本文中其他地方用的定义，在“集合的搜集”上的选择函数的定义域是这个搜集，所以只对集合的集合有意义。透过这个变体的定义，选择公理也可以简洁的陈述为

所有集合有一个选择函数。

它等价于

对于任何集合$A$有一个函数使得对于$A$的任何非空子集$B$，$f(B)\in B$。

而选择公理的否定表达为：

有一个集合$A$使得对于所有函数$f$（在$A$的非空子集的集合上），有一个$B$使得$f(B) \notin B$。

### 术语（AC，ZF，ZFC）

以下列出了这篇条目中各种与“选择公理”相关的缩写：

- AC：选择公理。
- ZF：策梅洛-弗兰克尔集合论，不包括选择公理。
- ZFC：策梅洛-弗兰克尔集合论，包括选择公理。

## 使用

直到19世纪晚期，选择公理的使用一直都没有得到明确声明。例如，建立了只包含非空集合的集合$X$之后，当时的数学家可能会直接说“设对于$X$中所有$s$有$F(s)$是$s$的成员之一”。一般来说，要是不用选择公理，是不可能证明$F$的存在性的。这一点直到策梅洛之前似乎没有引起人们的注意。

不是所有的情况都需要选择公理。选择公理对于那些没有可定义的选择才有必要。值得指出的是，对于有限集合$X$，选择公理的有限版本可以通过其他集合论公理推导得出。在这种情况下，它等价于说我们有多个（有限数目的）盒子，每个包含至少一个物体，则我们可以从每个盒子恰好选择一个物体。显然我们可以这么做：从第一个盒子开始，选择其中的一个物体；到下一个盒子，选择一个物体；如此类推。因为盒子数量有限，所以我们的选择过程最后一定会结束。这里给出的选择函数是明确的：第一个盒子对应于第一个选择的物体，第二个盒子对应于第二个选择物体；如此类推——此法之所以可行，是因为序对公理的原因。可以通过数学归纳法做出对所有有限集合的形式证明。

## 例子

对于特定的无限集合$X$，也可以避免使用选择公理。例如，假设$X$的元素是自然数的集合。每个自然数的非空集合都有一个最小的自然数，所以只要简单的把每个集合映射到这个集合内最小的数字，就得到了选择函数。这使得我们可以从每个集合明确地选择元素，以及写出一个明确的表达式，说明我们的选择函数如何取值。在能够指定一个明确选择方式的时候，选择公理都是没有必要的。

当缺乏从每个集合得到元素的直观选择方式时，困难就出现了。如果不知道选择的方式，那要怎么确认选择函数的存在？例如，假设X是实数的所有非空子集的集合。第一个可能产生的思路是套用有限的情况去处理$X$。如果尝试从每个集合选择一个元素，那么，因为实数集合是无限不可数，所以选择的过程永远不会结束。也因为如此，永远不能构造出对$X$的成员的选择函数。所以这种方法不能奏效。第二个可能产生的思路是尝试给每个集合指定最小元素，但是很多实数的子集没有最小元素。例如，开区间$(0,1)$没有最小元素：如果$x$在$(0,1)$中，则$\frac{x}{2}$也在其中，而$\frac{x}{2}$总是严格的小于$x$。所以这种方法也不行。

我们之所以能够从自然数的非空子集选择最小元素，是因为自然数上有一个良序：所有自然数的非空子集都有一个唯一的最小元素。

因此，第三个思路，“即使实数的正常排序方式不是良序，是不是也能找到一个排序使得实数是良序的？”。如果真的有这种排序方式，那就能够选择实数非空子集的最小元素，从而得到了选择函数——然而问题就变成如何构造这样的排序。而事实上，“存在一个排序使得所有集合是良序的”等价于选择公理。

有必要用到选择公理的证明总是非构造性的，即使证明给出了一个对象，精确地说出那个对象却是不可能的。如果不能写出选择函数的定义，那这个选择到底是什么？这是一些数学家不喜欢选择公理的理由之一。例如，构造主义者论断说所有涉及存在性的证明都应当是完全明确的；构造任何存在的对象应当是可能的。他们拒绝选择公理，因为它断言了“不能具体描述的对象”存在。

## 构造性数学

像上面讨论的那样，在ZFC中，选择公理能为一个不能明确构造出的对象给出“非构造性证明”来证明其存在性。然而，ZFC依然是在经典逻辑下被形式化的。在构造性数学领域，选择公理仍被深入研究，而当中应用的是非古典逻辑。在构造性数学的不同版本中，选择公理的状况也有所差别。

在直觉类型论和高阶的Q5548813中，选择公理的适当陈述（按照推导方式）可以是作为一个公理，又或者作为一个可证明的定理。埃里特‧毕夏普认为选择公理可被视作是构造性的：

在构造性数学中选择函数是存在的，因为存在的涵义蕴涵了选择。

但在构造性集合论中，迪亚科内斯库定理表明选择公理蕴涵了排中律（在直觉类型论中，选择公理不蕴涵排中律）。因此选择公理在构造性集合论中并非普遍被接受。在类型论中的选择公理与在构造性集合论中的选择公理的区别是，前者不具有外延性而后者具有。

一些构造性集合论的结果用到了可数选择公理或依赖选择公理，这两个公理在构造性集合论内并不蕴涵排中律。尽管可数选择公理在构造性数学中的应用特别广泛，它的使用也受到质疑。

## 强形式公理

可构造性公理与连续统假设都蕴涵了选择公理，更准确地说，两者都严格强于选择公理。在类理论中，如冯诺伊曼-博内斯-哥德尔集合论和Morse–Kelley集合论，存在一个叫全局选择公理的公理，它比选择公理要强，因其同时也适用于真类。全局选择公理可由大小限制公理推出。

## 结论

哥德尔证明了选择公理与ZF的相对协调性。保罗·寇恩用力迫法证明了选择公理独立于ZF。

## 外部链接

- Paul Howard at EMU 有很多人仍然在为选择公理和它的推论而乐此不疲地工作。如果你有兴趣了解更多内容，请参考这个网站。