在研究数学时常常会出现这样的现象:人们最先研究一些特殊对象的性质,例如在最先学习算数时我们研究了自然数上的结合律、分配律等,而当向量、矩阵等概念出现之后,人们发现向量和矩阵在运算时也有结构完全相同的结合律、分配律。于是最方便的方法就是把满足这样性质的数学对象抽象出来,命名为一类新的代数结构,例如群、环、域等等。这样以后,人们只需要研究群的性质,再证明某一对象在一定条件下表现为群,那么这个对象就会满足群的所有性质。这是数学中尤其美妙的地方。
人们在研究实数、欧氏空间以及这些空间上的连续函数时,抽象出了“拓扑空间”的概念。研究拓扑空间及其性质的学科就称为拓扑学。
拓扑空间(Topological Spaces)
对于集合X,我们称P(X)的子集τ是关于X的一个拓扑(topology),如果它满足以下三个条件:
- ∅∈τ,X∈τ;
- 任意{Aα}α∈J(可以不可数),(∀α∈J,Aα∈τ)⇒α∈J⋃Aα∈τ;
- ∀A,B∈τ,A∩B∈τ;
对于X及其上的一个拓扑τ,我们称二元组(X,τ)是一个拓扑空间(topological space)。
以上的第三条性质等价于∀n∈N,∀A1,⋯,An,(∀i,Ai∈τ)⇒i=1⋂nAi∈τ。证明:如果∀A,B∈τ,A∩B∈τ,那么依据数学归纳法,A1∩A2∈τ,所以(A1∩A2)∩A3∈τ,……,i=1⋂nAi∈τ;如果i=1⋂nAi∈τ,那么取n=2即得∀A,B∈τ,A∩B∈τ。
对于任意一个X而言,我们注意到P(X)总是一个拓扑,这称为离散拓扑(discrete topology);{∅,X}也总是一个拓扑,这称为平凡拓扑(trivial topology)。
对于X上的两个拓扑τ1,τ2,如果τ1⊆τ2,就称τ1粗于(coarser than)τ2;如果τ2⊆τ1,就称τ1细于(finer than)τ2。
拓扑的基(Basis for a Topology)
对于X,当给定一个S⊆P(X)时,我们希望可以定义“由S生成的拓扑”,也即包含S的最小拓扑。然而,这件事并不是对任意S都是容易的。人们发现,当S满足某一些特定性质时,这一定义变得容易,并且满足这些特定性质的S本身被证明是一类重要的数学概念,称为“拓扑的基(basis)”。
对于S⊆P(X),如果S满足以下两个性质,则称S是X上的一组基:
- ∀x∈X,∃T∈S,x∈T
- ∀x∈X,∀T1,T2∈S,(x∈T1∩T2)⟹(∃T3∈S,(x∈T3)∧(T3⊆T1∩T2))
第一条性质要求基能覆盖X,也即X⊆⋃S;第二条性质要求基中的元素对于取交有某种封闭性:S中任意两个元素的交集要么也在S中,要么包含S中的某个元素。
我们通常用B来表示X上的一组基。
可以验证,R2上所有圆形的内部区域构成R2上的一组基;R2上所有矩形的内部区域构成R2上的一组基。
对于X上的一组基B,我们这样定义由B生成的拓扑τ(B):对任意U⊆X,U∈τ(B)当且仅当∀x∈U,∃B∈B,(x∈B)∧(B⊆U)。也就是说,τ(B)中包含所有这样的集合,这些集合内部的基元素能覆盖该集合本身。
显然B⊆τ(B),因为∀B∈B,我们有∀x∈B,(x∈B)∧(B⊆B)。
我们需要验证,这样定义的τ(B)确实是X上的一个拓扑。只需证明拓扑的三个条件:
- 当U=∅时,x∈U始终不成立,因此条件始终成立,所以∅∈τ(B);当U=X时,根据基的定义∀x∈X,∃B∈B,x∈B,并且B∈X,所以X∈τ(B);
- 假设对于{Uα}α∈J有∀α∈J,Uα∈τ(B),只需证明α∈J⋃Uα∈τ(B)。∀x∈α∈J⋃Uα,∃β∈J,x∈Uβ。根据x∈Uβ,可知∃B∈B,(x∈B)∧(B⊆Uβ)。由B⊆Uβ自然有B⊆α∈J⋃Uα。所以α∈J⋃Uα∈τ(B);
- 假设U1∈τ(B),U2∈τ(B),只需证明U1∩U2∈τ(B)。∀x∈U1∩U2,有x∈U1,所以∃B1∈B,(x∈B1)∧(B1⊆U1);有x∈U2,所以∃B2∈B,(x∈B2)∧(B2⊆U2)。所以x∈B1∩B2,于是根据基的定义∃B3∈B,(x∈B3)∧(B3⊆B1∩B2)。于是B3⊆U1∩U2。所以U1∩U2∈τ(B)。
我们下面证明基有这样一个良好的性质,这也是为什么我们把它称为“基”:对于任意的U∈τ(B),U一定等于若干个B中元素的并。也即存在一个指标集K使得{Bα}α∈K⊆B,满足U=α∈K⋃Bα。反之,任取B的一个子集{Bα}α∈K⊆B,有{Bα}α∈K⊆τ(B),所以根据拓扑的任意并的性质,α∈K⋃Bα∈τ(B)。这意味着,τ(B)恰好就是由所有的B的子集的并集构成的:τ(B)={⋃S∣S⊆B}。
基的这种表示特性可以类比线性代数中基向量张成线性空间。但是和线性代数中不同的是,我们并不能证明这种用基表示拓扑空间中的元素的表示是唯一的。在拓扑空间的基中,这种表示通常不是唯一的。
现在我们可以证明τ(B)是包含B的最小拓扑:假设μ也是一个拓扑并且B⊆μ,我们下面证明τ(B)⊆μ。即证{⋃S∣S⊆B}⊆μ。即证∀S⊆B,⋃S∈μ。因为S⊆B,所以S⊆μ。因为μ是拓扑,所以任意并依然在拓扑中。所以⋃S∈μ。证毕。
给定X上的一个拓扑τ0,我们可以用以下两个条件来判定集合B0是否恰好是τ0的一组基:(换言之,满足以下两个条件的集合B0⊆P(X)是一组基,且τ(B0)=τ0)
- B0⊆τ0
- ∀U∈τ0,∀x∈U,∃B∈B0,(x∈B)∧(B⊆U)。
证明:首先验证满足以上条件B0是基:①∀x∈X,我们会选取一个x∈B加入B0,成立;②如果x∈B1∩B2,由于B1,B2∈τ0,所以B1∩B2∈τ0,所以当U=B1∩B2时,我们会加入B3满足(x∈B3)∧(B3⊆B1∩B2) ;综上,B0是一组基。下面证明τ(B0)=τ0。首先,∀U∈τ0,∀x∈U,∃B∈B0,(x∈B)∧(B⊆U)意味着∀U∈τ0,U∈τ(B0),因此τ0⊆τ(B0);其次,我们已经得到τ(B0)={⋃S∣S⊆B0}。由于B0⊆τ0,τ(B0)⊆{⋃S∣S⊆τ0},而τ0是拓扑,满足任意并封闭性,因此{⋃S∣S⊆τ0}=τ0,所以τ(B0)⊆τ0。证毕。
直观上,基可以看作是构成拓扑的基本构件,所以基的粗细决定了其生成的拓扑的粗细。我们可以证明:对于X上的两个基B1,B2,τ(B1)⊆τ(B2)当且仅当∀B∈B1,∀x∈X,(x∈B)⟹(∃B′∈B2,(x∈B′)∧(B′⊆B))。左推右:假设τ(B1)⊆τ(B2),那么对于任意B∈B1,因为B∈τ(B1),所以B∈τ(B2),所以根据基生成拓扑的定义,∀x∈B,∃B′∈B2,(x∈B′)∧(B′⊆B);右推左:对于任意的U∈τ(B1),我们证明U∈τ(B2):∀x∈U,∃B∈B1,(x∈B)∧(B⊆U),根据假设∃B′∈B2,(x∈B′)∧(B′⊆B)。所以∀x∈U,∃B′∈B2,(x∈B′)∧(B′⊆U),所以U∈τ(B2)。
对于R2上的一个点,任意包含这个点的开圆一定有一个包含它的开矩形,所以全体开矩形生成的拓扑细于全体开圆生成的拓扑;任意包含这个点的开矩形一定有一个包含它的开圆,所以全体开圆生成的拓扑细于全体开矩形生成的拓扑。所以,全体开矩形生成的拓扑恰好等于全提开圆生成的拓扑。
子基(Subbasis)
我们已经证明了,给定集合X,满足特定条件的S⊆P(X)(“基”的两条性质:覆盖与交的包含封闭性)可以直接通过“任意子集的并”给出包含S的最小拓扑。那么,对于一般的集合S,如何给出包含S的最小拓扑呢?
我们假设S只满足基的第一条性质,也即∀x∈X,∃B∈S,x∈B。我们证明,S={i∈[n]⋂Si∣n∈N;∀i∈[n],Si∈S}是一组基,也即S做“有限交的扩充”之后会成为一组基:因为S⊆S,而S覆盖X,所以S覆盖X,基的第一条性质成立;∀x∈X,假设x∈T1∩T2,其中T1,T2∈S,不妨设T1=S1∩⋯∩Sn,T2=S1′∩⋯∩Sm′,其中Si,Si′∈S,那么T1∩T2=(S1∩⋯∩Sn)∩(S1′∩⋯∩Sm′),所以T1∩T2∈S,所以基的第二条性质也成立。证毕。所以,τ(S)是一个包含S的拓扑。
下面我们证明τ(S)是包含S的最小拓扑,也即任何一个拓扑μ如果满足S⊆μ就一定有τ(S)⊆μ。∀U∈τ(S),我们有∃S0⊆S,U=⋃S0。要证明U∈μ,即证⋃S0∈μ。因为μ是拓扑,只需证∀S′∈S0,S′∈μ。不妨设S′=S1∩⋯∩Sn,n∈N,只需证∀i∈[n],Si∈μ。因为Si∈S,而S⊆μ,所以Si∈μ,证毕。
所以,对于任何一组能够覆盖X的集合S,我们证明了:只需取S的所有有限交构成的集合就能构造一组基S,这组基生成的拓扑是包含S的最小拓扑。因为S总是S的子集,所以我们通常把S称为X上的一组子基(subbasis)。子基是只满足基的第一条性质的集合族,X的一组子基就是P(X)的一个能覆盖整个X的子集。至此,我们已经清楚给定任何一组能覆盖整个集合的子集族,如何构造包含这个子集族的最小拓扑了。
序拓扑(Order Topology)
到现在为止,我们讨论的拓扑是基于任何一般的集合X的。下面我们要讨论,如果X上已经定义了一个全序关系<:X×X→{true,false},那么将能够引出基于该序关系的一些自然的拓扑。
实数就是一个全序集,我们可以仿照实数中对开区间、闭区间、半开半闭的区间定义任意全序集上的开区间、闭区间、半开半闭区间。例如,对于a,b∈X,定义(a,b):={x∈X∣(a<x)∧(x<b)}。同样地,我们仿照实数中的写法,定义(a,+∞):={x∈X∣x>a},等等。
(以下默认X中的元素不止一个)
如果全序集X没有最大元素或最小元素,那么我们可以证明B={(a,b)∣a,b∈X}是X的一组基(注意(a,b)是指开区间而不是有序对)。证明:首先验证基的第一个条件:∀x∈X,因为X没有最小元素和最大元素,所以存在y,z∈X满足y<x<z,于是x∈(y,z)且(y,z∈B),成立;再验证第二个条件:若x∈(a,b)∩(c,d),那么c<b,所以x∈(c,b)⊆((a,b)∩(c,d)),成立。证毕。这组基生成的拓扑τ(B)称为X上的序拓扑。
如果X有最大元素或最小元素,那么{(a,b)∣a,b∈X}就不足以覆盖最大元素或最小元素,因此无法构成基。但是这只要做一点小的修正:如果X有最小元素xmin,那么我们就在基中加入{[xmin,a)∣a∈X};如果X有最大元素xmax,那么我们就在基中加入{(a,xmax]∣a∈X}。同理,我们可以证明B={(a,b)∣a,b∈X}∪{[xmin,a)∣a∈X}∪{(a,xmax]∣a∈X}是X的一组基,这组基生成的拓扑就是序拓扑。
注意到,无论X是否有最大最小元素,S={(a,+∞)∣a∈X}∪{(−∞,a)∣a∈X}都覆盖了整个X,因此构成了X上的一个子基。所以,对S取有限交就会得到X的一组基S,这组基会生成X上的一个拓扑。显然,S中包含所有的开区间,因此τ(S)一定包含X上的序拓扑(如果X有最大或最小元素,那么所有半开半闭区间本身都已经在S中了),也即τ(S)是比序拓扑更细的拓扑。
所以,实数集合R上的序拓扑就是由全体开区间生成的拓扑。实数集上的序拓扑称为R上的标准拓扑(standard topology),标准拓扑中的元素称为开集(open set)。事实上,习惯上总是把一个拓扑中的元素称为“开集”。拓扑中开集的定义——对任意并和有限交封闭的性质——正是从实数集、欧氏空间中的“开集”定义中抽象出来的。
积拓扑(Product Topology)
对于两个拓扑空间(X,τX),(Y,τY),我们可以证明(X×Y,τ(B))是一个拓扑空间,其中B={U×V∣U∈τX,V∈τY}。这个拓扑称为X×Y上的积拓扑。只需验证B是基:∀(x,y)∈X×Y,∃U∈τX,x∈U;∃V∈τY,y∈V,所以(x,y)∈U×V∈B,成立;若(x,y)∈(U1×V1)∩(U2×V2),也即若(x,y)∈(U1∩U2)×(V1∩V2),而由于拓扑对有限交封闭,U1∩U2∈τX,V1∩V2∈τY,所以第二个条件也成立。
对于两个拓扑空间(X,τX),(Y,τY),可以证明:如果τX=τ(BX),τY=τ(BY),那么{B1×B2∣B1∈BX,B2∈BY}是X×Y上的一组基。证明:性质1显然;性质2,若(x,y)∈(B1×B2)∩(B1′×B2′),则(x,y)∈(B1∩B1′)×(B2∩B2′)。根据BX,BY是基,∃TX∈BX,x∈TX⊆B1∩B1′,∃TY∈BY,y∈TY⊆B2∩B2′,于是TX×TY⊆(B1∩B1′)×(B2∩B2′),证毕。这说明,对两组基做积,会自然得到积空间上的基。
所以,把R上的标准拓扑的基——全体开区间的集合——与自己做笛卡尔积,就能得到R2的一组基。这组基是全体开矩形的集合,称为R2上的标准拓扑。
子空间拓扑(Subspace Topology)
假设已知X上有一个拓扑τX,那么对于任意X的子集Y,我们可以证明τY={Y∩U∣U∈τX}是Y上的一个拓扑:
- ∅∈τX,所以∅∩Y=∅∈τY;X∈τX,所以X∩Y=Y⊆τY;
- 对于τY的任意一个子集S,它总可以看作是由τX的一个子集{Uα}α∈J与Y做交得到的,也即S={Uα∩Y∣α∈J},而⋃S=α∈J⋃(Uα∩Y)=(α∈J⋃Uα)∩Y,因为τX是拓扑所以α∈J⋃Uα∈τX,所以⋃S∈τY。
- ∀V1,V2∈τY,存在U1,U2∈τX使得V1=U1∩Y,V2=U2∩Y。V1∩V2=(U1∩Y)∩(U2∩Y)=(U1∩U2)∩Y。因为U1∩U2∈τX,所以V1∩V2∈τY;
可见,假设我们已经得到了大集合的一个拓扑,要得到其子集的拓扑只需要把大的拓扑中的每个元素与子集做交。当给定拓扑空间(X,τX)以及子集Y⊆X时,如果我们在Y上把用上述取交集的方式定义拓扑τY,这时就把τY称为τX在Y子空间上的拓扑,把Y称为X的子空间(subspace)。
类似地,我们证明如果B是X的一组基,那么对于任意X的子集Y,BY={B∩Y∣B∈B}是Y的一组基:
- ∀y∈Y,y∈X,因此∃B∈B使得y∈B。因为y∈Y,所以y∈B∩Y∈BY;
- 设y∈B1∩B2,其中B1,B2∈BY。那么存在B1X,B2X∈B使得y∈(B1X∩Y)∩(B2X∩Y) =(B1X∩B2X)∩Y,而B1X∩B2X∈B,因此(B1X∩B2X)∩Y∈BY;
事实上,利用拓扑的基的判定条件可以直接验证τ(BY)恰好就是子空间拓扑τY:首先,∀B∈BY,存在B′∈B使得B=B′∩Y,而B′∈B⊆τX,所以BY⊆τX;∀U∈τY,存在UX∈τX使得U=UX∩Y。∀x∈U,我们可以取B∈B满足x∈B⊆UX,所以x∈B∩Y⊆U,其中B∩Y∈BY。可见,两个判定条件都满足。
特别地,如果Y本身是τX的元素,那么可以证明τY⊆τX。证明:∀U∈τY,存在UX∈τX满足U=UX∩Y,其中Y∈τX。而因为τX是拓扑所以对交封闭,因此UX∩Y∈τX。证毕。
以下关于子空间的积拓扑的结论与期望相符:若A⊆X,B⊆Y,设X的拓扑为τX,Y的拓扑为τY,τX在A子空间上的拓扑为τA,τY在B子空间上的拓扑为τB,则“A×B上的积拓扑”恰好等于“X×Y上的积拓扑在A×B子空间上的拓扑”。证明:A×B上的积拓扑的基定义为BA×B={U×V∣U∈τA,V∈τB},X×Y上的积拓扑的基定义为BX×Y={W×R∣W∈τX,R∈τY}。因为A×B⊆X×Y,所以{(W×R)∩(A×B)∣W∈τX,R∈τY}是X×Y上的积拓扑在A×B子空间上的拓扑的一组基。它等于{(W∩A)×(R∩B)∣W∈τX,R∈τY}。根据定义,这恰好就是BA×B。基相同,生成的拓扑也相同。证毕。
以下关于子空间的序拓扑的结论却与期望不相符:设X是全序集,X的子集Y继承X上的序关系,X上的序拓扑为τX,Y上的序拓扑为τY,我们发现τY不一定等于τX在子空间Y上的拓扑。反例:设X是实数集R,Y=[0,1)∪{2}。我们有(3/2,5/2)∈τX,因此(3/2,5/2)∩Y={2}属于X在子空间Y上的拓扑。然而,{2}∈/τY,因为任何一个包含Y中最大元素的区间都一定包含了某个[0,1)中的元素。
在上面的反例中,集合Y没有足够良好的性质使得期望的结论成立。如果我们加强条件不允许{2}这样的单点集出现,就可以证明我们想要的结论。对于全序集X的子集Y,如果∀a,b∈Y,(a<b)→({x∣a<x<b}⊆Y),就称Y是一个凸集(convex set)。设X上的序拓扑为τX,Y上的序拓扑为τY,此时可以证明τY等于τX在子空间Y上的拓扑:不妨设X,Y都没有最大最小元素,因为有最大最小元素的证明是类似的,这样避免了繁琐的讨论。左包含右:τY中Y上所有开区间生成的拓扑,因此任意U∈τY都可以写作若干Y上开区间的并集,而Y上开区间也是X上开区间,因此U可以写作若干τX的基元素的并集,也即U∈τX,所以U∈{V∩Y∣V∈τX};右包含左:对于任意U∈τX,我们要证明U∩Y∈τY。U是若干X上开区间的并集,其中的每个开区间对Y取交都是Y上的开区间,这些区间并起来会得到U∩Y。而Y上开区间都是τY中元素,因此U∩Y也是τY中元素。证毕。