0%

拓扑与素数

数学发展的一大特征就是不断的抽象。因为当一些定理成立的时候,你可能并不知道你已经使用了超出你需要范围的东西,而抽象可以让你看清楚到底哪些条件、性质才是我们需要来证明这个定理的。拓扑学是这样的一门学科,它通过对“开集”这个概念的抽象,发展出了一套波澜壮阔的理论。在这篇文章,我想和大家谈谈拓扑,顺便聊聊如何用拓扑证明素数有无穷多个。

开集和邻域

前面说到,拓扑是对“开集”这个概念的抽象。那么,什么是开集呢?相信大家中学的时候都学过区间的概念,特别的,我们知道开区间就是形如 $(1,2)$ 这样的集合,而闭区间则是 $[1,2]$ 这样的集合。事实上,数轴 $\mathbb{R}$ 上的所有开集就是任意的开区间的并构成的集合。这就是所有的开集了吗?我们为什么要研究这个概念呢?为了说清楚这个问题,我们需要聊聊另外一个概念:邻域。

简单的说,我们有如下定义

Definition

我们称包含了这个点的一个开集为这个点的一个邻域

比如 $(0,1)$ 就是 $0.5$ 的一个邻域,又比如 $(-\infty,\infty)$ 是任何一个点的邻域。当然后一个例子里的“邻域”看起来不怎么靠近。但是只要满足定义,它就是一个邻域!邻域这个概念正如它的名字所暗示的,它刻画了点和点之间的“邻里”关系。假如两个点 $A$ 和 $B$ 足够接近(它们是“邻居”),那么 $A$ 应该有许多邻域都包含 $B$;相反假如它们足够远离,那么 $A$ 应该有(和前一种比)更少的邻域包含 $B$。当然在数轴上,包含两个点的开区间总是有无穷多个,我们是很难直接比较多和少的(事实上它们总是一样多——等势的)。但是抛开严谨性,我们还是会觉得包含 $0$ 和 $1$ 的(连通的)开区间比包含 $0$ 和 $0.5$ 的(连通的)开区间要少——因为前者一定都在后者里面。通俗地讲,你可以把邻域理解成一个关系网,假如张三和李四认识,那么他们俩的关系网里重叠的人就会更多(有更多的“邻域”互相包含对方),反之就应该更少。

让我们回去看看开区间和闭区间的例子:比如 $(1,2)$ 和 $[1,2]$。它们最大的区别,就是 $1$ 和 $2$ 在后一个里面,却不在前一个里面。事实上,这两个点有一个非常重要的名字,他们叫做*边界点(boundary point)*。什么样的点是边界点呢?

Definition 一个点是某个集合的边界点,当且仅当它的任意一个邻域都包含至少一个集合内的点和一个集合外的点。

这个定义看起来很抽象,但是不要被它吓到。还是让我们回到刚刚的例子,比如 $1$ 是 $[1,2]$ 的边界点。我们来检查一下它是否满足定义:任意包含 $1$ 的开集,它一定包含一个小于 $1$ 的数,这个数显然在 $[1,2]$ 外面,同时它一定包含 $1\in [1,2]$。所以满足定义!仔细思考了一下,这个定义除了有点拗口,还是很直观的。就像小时候同桌画的三八线。是不是在那根线的周围,既存在你的势力范围也存在他/她的势力范围?而不在那根线附近的话,你就总可以画一个圈使得这个圈完全是你的势力范围了!

开集就是那些不包含它们边界点的集合。假如一个点 $x$ 在集合 $U$ 中,而又不是 $U$ 的边界点,那么它的邻域满足什么样的条件呢?这个条件就是边界点邻域满足的条件的反面:存在一个 $x$ 的邻域,这个邻域完全包含在 $U$ 中!终于,我们可以给出(一般的)开集的定义了!🎉🎉🎉

Definition 一个集合 $U$ 是开集,假如它的每一个点都有一个包含在 $U$ 里面的邻域。

等一下!啥玩意儿?!邻域不是用开集定义的么!怎么就又用来定义开集了?!作者你在玩我?假如你意识到了这个问题,说明你很认真的理解了前半部分的文章。是的,这是一个很严重的问题,我们陷入了循环定义!就像鸡🐔和蛋🥚,总要先有一个才能有另一个,但是到底现有哪个呢?数学家是很聪明的,他们很快就找到了一个解决办法:既然开集和邻域总要先定义一个才能有另一个,那我们就强行定义其中一个好了,比如我们来定义开集好了。怎么强行定义?就把所有的开集给你一个个列出来!你可以把下面提到的 $\mathscr{B}$ 想像成一个数据库,里面清晰的记录了所有的开集。你想知道一个集合是不是开集,只要把这个集合丢进 SQL 语言里查询一下就行了!但是,一个这样的“数据库”里的元素不能是任意的子集,它们还必须满足一定的条件:

Definition 一个空间 $X$ 的开集就是这样一组数据 $\mathscr{B}$:它是 $X$ 的一部分特定子集的集合,并且满足如下性质:
  1. 整个空间和空集都在 $\mathscr{B}$ 中:$X\in \mathscr{B}$ 和 $\emptyset\in\mathscr{B}$.
  2. $\mathscr{B}$ 中任意多个元素(注意它们都是 $X$ 的子集)在 $X$ 中的并集,仍然是 $\mathscr{B}$ 中的元素
  3. $\mathscr{B}$ 中有限多个元素在 $X$ 中的交集,仍然是 $\mathscr{B}$ 中的元素
    特别的,这样的一组数据称为集合 $X$ 的一个*拓扑 (topology)。一个集合 $X$ 配上它的拓扑 $\mathscr{B}$ 就称为一个拓扑空间 (topological space)*。

这个定义看起来很吓人,怎么一会儿要无穷并,一会儿又要有限交。我们慢慢来解释:第一条是某种边界条件,我们不细聊;我们想要第二条,是因为刚刚我们说过,一个开集就是它每个点都有一个包含在它里面的邻域,所以这个开集实际上是可以写成这样的邻域的并的。很显然这是一个无穷并,而我们又说过邻域就是(包含某个特定点的)开集,所以我们自然希望开集的无穷并还是开集!事实上因为(我们总是要求)开集有这个性质,在我们给出一个拓扑 $\mathscr{B}$ 的时候,我们甚至不会描述所有开集,而只是描述 $\mathscr{B}$ 的一个对于有限交封闭的子集,然后令开集就是这个子集的任意元素的并。我们通常称这样的子集生成了一个拓扑;来看第三条,为什么我们不要求无穷交是一个开集呢?因为在区间的情况下,开区间的无穷交就不见得是开集,比如 $\cap_n (-\frac{1}{n},1+\frac{1}{n})=[0,1]$。我们在最一开始就说到,拓扑是对开集这个概念的抽象,所以假如我们现有的开集的例子不满足某个性质,自然我们就不应该去要求。

可能有人要问了,开集定义好了,那闭集呢?很简单,一个拓扑空间的集合是闭集,假如它的补集是开集。根据这个定义和上面拓扑的描述,我们很快就得到了一个等价的关于闭集的刻画:全空间和空集都是闭集;无穷多个闭集的交是闭集;有限多个闭集的并是闭集。

等一下,全空间(和空集)不是开集么,怎么它又成了闭集了?因为我们直觉上觉得开区间就不能是闭区间。事实上,(有限非空)开区间确实不能是闭区间。但是这个性质是这种“开区间”拓扑所特有的。对于一般的拓扑空间,这一点是非必要的!完全可以存在即开又闭的集合!注意:开和闭并不是相反的概念!“闭”并不是“不开”(回忆定义:“闭”是指它的补集是“开”的)。一个集合是既开又闭的,最多说明它的补集也是既开又闭的(比如全集和空集)。真正矛盾的说法是:一个集合既是闭集,又不是闭集!

拓扑空间的例子

让我们来举几个例子。第一个例子就是一开始就提到的开区间。这里的开集是定义成任意多个开区间的并或者空集。让我们来检查一下定义:首先全集 $\mathbb{R}=(-\infty,\infty)$ 和空集 $\emptyset$ 显然在里面;由于每个开集是任意多个开区间的并,任意多个开集的并就是任意多个任意多个开区间的并,根据定义也在里面;对于有限多个开集的交,我们需要运用如下集合论的知识:

Lemma 对于集合族 $\{A_i\}$ 和 $\{B_j\}$,我们有 $(\cup_i A_i)\cap (\cup_j B_j)=\cup_{i,j} (A_i\cap B_j)$
证明:显然右边包含在左边里面。为了说明左边也包含在右边。考虑 $x$ 为左边的一个元素,那么 $x\in \cup_i A_i$ 意味着有个下标 $i_0$ 使得 $x\in A_{i_0}$。同样也有一个下标 $j_0$ 使得 $x\in B_{j_0}$。所以 $x\in A_{i_0}\cap B_{j_0}\subseteq$右边。$\blacksquare$

我们知道两个开区间的交一定是开区间(一个直接的分类讨论即可)。所以根据上述引理,我们知道任意两个开集的交也是开集。接下来一个简单的归纳就可以说明任意有限个开集的交还是开集。所以这样的开集构成 $\mathbb{R}$ 的一个拓扑,一般称为*欧氏拓扑 (Euclidean topology)*。

接下来这个例子有点……耍赖。对于任意集合 $X$,我们取 $\mathscr{B}={X,\emptyset}$。定义不是要求要有这两个元素么,那我们就只取这两个元素。读者可以自行验证这个 $\mathscr{B}$ 是 $X$ 上的一个拓扑。我们称这个拓扑为 *平凡拓扑 (trivial topology)*。我们也可以取 $\mathscr{B}$ 是 $X$ 的所有子集的集合(比如 $X={1,2}$,那么 $\mathscr{B}={\emptyset,\{1\},\{2\},\{1,2\}}$),读者可以再次自行验证这个 $\mathscr{B}$ 是 $X$ 上的一个拓扑。我们称这个拓扑为 _离散拓扑 (discrete topology)_。在离散拓扑下,任何一个子集都是既开又闭的(上面说到,这并不引起任何矛盾)!

那有读者就要问了:有没有有意思一点的拓扑呀?有!在实数轴 $\mathbb{R}$ 上,我们还可以赋予另一种拓扑。定义一个 $\mathbb{R}$ 的子集是*余有限 (cofinite)*的,假如它在 $\mathbb{R}$ 中的补集是有限点集。用人话说,就是你从数轴上扣掉有限个点,剩下的就是一个余有限集合。我们定义开集为空集和所有这样的余有限的集合。这就构成了一个拓扑,一般称为 * 余有限拓扑 (cofinite topology)。在数轴这个特殊的集合上,这种拓扑等价于另外一个在代数几何里非常重要的拓扑——扎里斯基拓扑 (Zariski topology)*。这种拓扑的特殊之处在于闭集等于有限集(为什么?)。所以任何一个无限集合一定不是闭集!

素数的无限性

好了,终于要开始说标题的另一半了:素数的无限性。首先,这是一个欧几里得就已经证明的结论。欧几里得在他的著作《几何原本》中提出如下证明:反设素数只有有限个,把他们标记为 $p_1,\ldots,p_n$ 。那么我们考虑 $N=p_1\cdots p_n + 1$。这个数不被任何一个已知素数整除,所以它的因数一定包含一个未知的素数,所以素数不可能是有限的!

Hillel Furstenberg 在1955年(当他还是一个本科生的时候!)提出了一个用拓扑证明素数无限的方法。用拓扑证明,很显然就是要定义开集。经过上面的长篇大论,我们已经知道什么叫开集了。那让我们来定义它们:首先令 $S(a,b)={ a n+b | n\in \mathbb{Z} }={a\mathbb{Z} +b}$ 表示从 $b$ 出发,以 $a$ 为公差往两侧延伸的等差数列。比如 $S(1,100)=\mathbb{Z},S(2,4)=$所有偶数。我们定义 $\mathbb{Z}$ 上的一个拓扑 $\mathscr{B}$ 是空集和所有的等差数列 $S(a,b)$ 的并。我们来运用所学的定义,仔细的验证一下这是一个拓扑:

  1. 定义第一条,我们要求 $\mathbb{Z}$ 和 $\emptyset$ 在 $\mathscr{B}$ 中。$\emptyset\in\mathscr{B}$ 是定义的一部分。而 $\mathbb{Z}=S(1,0)\in\mathscr{B}$ 自然也在其中。
  2. 定义第二条,$\mathscr{B}$ 中任意多个元素的并在 $\mathscr{B}$ 中。我们定义中已经允许任意取并了,所以这一条也是显然的。
  3. 定义第三条是验证中最困难的,我们有 $\mathscr{B}$ 中有限个元素,要验证它们的交还在 $\mathscr{B}$ 中。根据归纳法我们注意到,只需要验证两个元素的交还在 $\mathscr{B}$ 中就可以了。所以假设我们有两个元素 $A=\cup_i S(a_i,b_i)$ 和 $B=\cup_j S(c_j,d_j)$。运用上面的引理,我们有 $A\cap B = \cup_{i,j} (S(a_i,b_i)\cap S(c_j,d_j))$。 这是一个形如 $S(a_i,b_i)\cap S(c_j,d_j)$ 的集合的无穷并,假如我们能证明每个 $S(a_i,b_i)\cap S(c_j,d_j)$ 都要么是空集要么是某个 $S(e,f)$,那么我们就能断言 $A\cap B\in\mathscr{B}$ (是不是和欧氏拓扑里的证明很像?)。我们简化一下符号:我们要证明的就是
    Lemma $S(a,b)\cap S(c,d)=\emptyset$ 或者 $S(e,f)$。
    证明:假如 $S(a,b)\cap S(c,d)=\emptyset$ 那就没啥好证的了。假设$S(a,b)\cap S(c,d)\neq\emptyset$,那么存在一个 $f\in S(a,b)\cap S(c,d)$。令$e$ 是 $a$ 和 $c$ 的最小公倍数,我们声称 $S(a,b)\cap S(c,d)=S(e,f)$:显然等式右边是左边的子集(为什么?)。我们只要说明左边也包含在右边,对于任意的 $x\in S(a,b)\cap S(c,d)$。因为 $x\in S(a,b)$ 所以 $x-f$ 可以被 $a$ 整除。同理 $x-f$ 也可以被 $c$ 整除,所以 $x-f$ 一定可以被 $e$ 整除!所以 $x\in S(e,f)$。证毕。🎉🎉🎉 $\blacksquare$

现在,我们可以放心大胆的声称这样的集合(族)定义了一个拓扑,并开始使用这个拓扑了。为了证明素数有无穷多,我们需要如下观察:在上述定义的 $\mathscr{B}$ 这个拓扑下,

  1. 非空有限集合一定不是开集,(非全集的)余有限集合一定不是闭集:因为任何非空开集一定包含一个等差数列,所以一定是无限的集合。第二个论断是第一句话的等价说法。
  2. $S(a,b)$ 是既开又闭的集合(注意:上面我们讨论过,这不是一个矛盾的说法!):这是因为全集是 $\mathbb{Z}=\cup_{i=0}^{a-1} S(a,b+i)$。所以 $\cup_{i=1}^{a-1} S(a,b+i)$ 是 $S(a,b)$ 的补集。又因为 $\cup_{i=1}^{a-1} S(a,b+i)$ 显然是个开集,所以 $S(a,b)$ 同时也是闭集。

Here comes the punchline! 我们观察如下等式
$$
\mathbb{Z}\setminus {\pm 1} = \cup_{p\text{ prime}} S(p,0)
$$
因为任何一个数要么是 $\pm 1$,要么是某个素数的倍数,所以上述集合相等。根据观察 1,我们知道左边的集合一定不是闭集。现在,假如素数有限,右边就是一个有限的并。根据第二条观察,我们知道这就是一个有限闭集的有限并,所以也是闭集。正如我们前面所说,一个集合可以是既开又闭,但是不能既是闭集,又不是闭集。所以我们得到了一个矛盾!从而假设错误,素数是无限的!

参考文献

  1. Euclid’s theorem
  2. Furstenberg’s proof of the infinitude of primes