ZF公理
Zermelo-Frenkel(ZF)集合论公理包括九条公理。下面我们用一阶逻辑写出这九条公理,其中符号集为S={∈}:
- 公理0:∃x(x≡x);
- 公理1:∀x∀y(∀z(z∈x↔z∈y)→x≡y);
- 公理(组)2:∀z∀w1⋯∀wn∃y∀x(x∈y↔x∈z∧φ),其中n为任意正整数,且公式φ的自由变量只可能包含x,z,w1,⋯,wn;
- 公理3:∀x∀y∃z(x∈z∧y∈z);
- 公理4:∀x∃y∀z∀u(u∈z∧z∈x→u∈y);
- 公理(组)5:∀z∀x1⋯∀xn((∀x(x∈z→∃=1yφ))→∃v(∀x(x∈z→∃y(y∈v∧φ)))),其中n为正整数,且公式φ的自由变量只可能包含x,y,x1,⋯,xn,∃=1yφ是∃yφ∧∀y′(φyy′→y′≡y)的缩写;
- 公理6:∃x(∅∈x∧∀y(y∈x→y∪{y}∈x));(符号∅∈x和y∪{y}都是简写,其含义将在后文定义)
- 公理7:∀x∃y∀z(z∈y↔∀w(w∈z→w∈x));
- 公理8:∀x(∃y(y∈x)→∃y(y∈x∧¬∃z(z∈x∧z∈y)));
自然,当我们要为这套一阶逻辑公理赋予语义时,论域中的任何一个元素都是“集合(set)”。这就是为什么我们说:在ZF公理下,“一切数学对象都是集合”。当然,“一切数学对象”是一个模糊的说法,许多看上去是数学对象的东西其实并不是集合,“罗素悖论”就是因为没有清晰定义“什么可以作为集合”才产生的。ZF公理正是给出了许多构造集合的方法,来澄清什么可以作为集合,什么不可以作为集合。
另一方面,根据斯科伦-勒文海姆定理,因为我们使用了符号集为有限集{∈}的一阶逻辑语言,这套公理一定存在一个论域可数的模型。但是我们又将看到,ZF公理可以推出描述“存在不可数集合”的公式。这就是斯科伦悖论(Skolem's paradox)。这个论域可数的集合可以看作ZF集合论的一个非标准模型。但是,集合论的“标准模型”是什么,这件事本身也是不清楚的。所以应当牢记我们接下来要做的一切只是从形式系统的角度出发,由以上这些公理推出定理。我们对这些公理和定理做出的解释,并不是在某个标准模型下的语义,而是对它们在形式证明中所起到的作用的一种“显示”。
公理0:存在公理
“∃x(x≡x)”称为“存在公理(existence)”,它表明至少存在一个集合。
公理1:外延公理
“∀x∀y(∀z(z∈x↔z∈y)→x≡y)”称为“外延公理(extentionality)”,它使得我们要证明一个集合x“等于”另一个集合y时,只需从形式上证明∀z(z∈x↔z∈y)。其中,“外延”这个词来源于哲学。一个概念的外延就是这个概念所适用的所有具体对象。例如按照弗雷格的函项理论,概念词“人”的外延就是所有能被填入“()是人”的括号内的对象。ZF集合论的外延公理告诉我们,集合x的外延就是全体满足z∈x的z,两个集合是“相等的”当且仅当它们的外延相等。
公理2:概括公理
概括公理是一系列的公理组“∀z∀w1⋯∀wn∃y∀x(x∈y↔x∈z∧φ)”。其中n可以取任意正整数。公式φ也可以是任意的,只要其满足自由变量只包含x,z,w1,⋯,wn。这组公理称为“概括公理(comprehension)”,它为我们提供了由“性质”构造集合的方法。在自然语言中,这样的构造方法通常写为{x∣φ(x)}。
由性质构造集合时,必须格外小心。我们没有直接把概括公理写为∃y∀x(x∈y↔φ),因为当φ=¬x∈x时,会引发罗素悖论(Russell's paradox):对于集合y={x∣¬x∈x},如果y∈y,那么¬y∈y;如果¬y∈y,那么y∈y。于是,y∈y↔¬y∈y,于是公理系统就是不可满足的,也即不一致的。
因此,依据概括公理,当我们要由性质φ构造集合时,必须首先确定一个集合z,然后再用公式φ描述“子集关系”,这样才能用公式φ构造一个z的子集。从这个角度,我们就已经发现ZF公理不允许存在一个“包含了所有集合的集合”,因为假如这样一个集合存在,我们就可以把它作为z构造出罗素悖论y={x∈z∣¬x∈x}了。
依据概括公理,对任意集合x,存在x的一个子集{z∈x∣x=x},这个集合用符号记为{x},称为包含x的单元集(singleton)。
取φ=¬x≡x,由概括公理可知∀z∃y∀x(x∈y↔x∈z∧¬x≡x)。但是¬x≡x始终为假。所以,存在一个集合y满足∀x(¬x∈y)。根据外延公理,这样一个集合是唯一的。我们把这个集合称为空集,记为∅。
“记为∅”的含义是,任何一个带有∅的公式都是另一个不带有∅公式的缩写。对任何带有∅的公式φ,它都是∃A((∀x(¬x∈A))∧φ∅A)的缩写。例如y≡∅是∃A((∀x(¬x∈A))∧y≡A)的缩写。
我们把符号⊆用于缩写。把∀x(x∈y→x∈z)缩写为y⊆z。
公理3:配对公理
“∀x∀y∃z(x∈z∧y∈z)”称为“配对公理(pairing)”,它继概括公理以后又为我们提供了一种构造集合的方式。任给两个集合x,y,存在一个集合z又有x作为元素,又有y作为元素。而依据概括公理,又存在z的一个子集{u∈z∣u=x∨u=y},也即存在一个集合有且仅有x,y作为元素。把这个集合用符号记为{x,y}。进而,{{x},{x,y}}也是一个集合。
把{x,y}称为由x,y构成的无序对(unordered pair)。
把{{x},{x,y}}称为由x,y构成的有序对(ordered pair)。用符号⟨x,y⟩表示x,y构成的有序对。
公理4:并集公理
“∀x∃y∀z∀u(u∈z∧z∈x→u∈y)”称为“并集公理(union)”,它又提供了一种构造集合的方式。对于任意集合x,如果x的每个元素z都是包含若干元素u的集合,那么存在一个集合y包含了x的每个元素的元素。
进而依据概括公理,可以写出恰好包含x的每个元素的元素的集合{u∈y∣∃z(z∈x∧u∈z)}。这个集合称为集合族{z∣z∈x}的并集,记为⋃{z∣z∈x}或z∈x⋃z。
再次依据概括公理,还可以写出x的每个元素的共同元素的集合{u∈y∣∀z((z∈x)→(u∈z))},这个集合称为集合族{z∣z∈x}的交集(intersection),记为⋂{z∣z∈x}或z∈x⋂z。
对于无序对{A,B},我们引入符号A∪B作为⋃{A,B}的缩写,A∩B作为⋂{A,B}的缩写,A∖B作为{u∣u∈A∧¬u∈B}的缩写。
公理5:替换公理
替换公理是一系列的公理组∀z∀x1⋯∀xn((∀x(x∈z→∃=1yφ))→∃v(∀x(x∈z→∃y(y∈v∧φ))))。其中n可以取任何正整数。公式φ可以是任意的,只要其自由变量只包含x,y,x1,⋯,xn。∃=1yφ是∃yφ∧∀y′(φyy′→y′≡y)的缩写。这个公理描述的是,我们可以依据“映射”来从定义域集合构造像集集合。其中,z是定义域,φ可以看作是形如y≡f(x)的。如果对任意x∈z都存在唯一的y使得y=f(x),那么存在集合v,它包含所有f(x)。于是根据概括公理,像集{y∣∃x∈z,y=f(x)}也存在。
函数与二元关系
基本定义
对于任意两个集合A,B,任取B中的一个元素y,依据替换公理存在集合{z∣∃x∈A,z=⟨x,y⟩}。再应用一次替换公理,可以得到集合{z′∣∃y∈B,z′={z∣∃x∈A,z=⟨x,y⟩}}。根据并集公理,得到集合y∈B⋃{z∣∃x∈A,z=⟨x,y⟩},这也就是{⟨x,y⟩∣x∈A∧y∈B}。这个集合称为集合A,B的笛卡尔积(cartesian product),记为A×B。
对于任意两个集合A,B,任意A×B的子集R⊆A×B称为一个二元关系(binary relation)。定义二元关系R的定义域(domain)为dom(R):={x∣∃y∈B,⟨x,y⟩∈R},二元关系R的值域(range)为ran(R):={y∣∃x∈A,⟨x,y⟩∈R}。
称f是一个A到B的函数,如果f⊆A×B,dom(f)=A,ran(f)⊆B,且对于任意x∈A,存在唯一一个y∈B使得⟨x,y⟩∈f。如果∀x,y∈A,x=y⟹f(x)=f(y),就称f为单射(injection);如果ran(f)=B,就称f为满射(surjection)。如果f既是单射又是满射,就称f为双射(bijection)。通常, 把⟨x,y⟩∈R简记为xRy。
偏序与全序
把二元关系R⊆A×A称为A上的严格偏序关系(strict partial ordering),如果满足以下两条:
- 反自反性(irreflexivity):∀x∈A,¬xRx;
- 传递性(transitivity):∀x,y,z∈A,(xRy∧yRz)⟹xRz;
把二元关系R⊆A×A称为A上的非严格偏序关系(non-strict partial ordering),如果满足以下三条:
- 自反性(irreflexivity):∀x∈A,xRx;
- 反对称性(antisymmetry):∀x,y∈A,(xRy∧yRx)⟹x≡y
- 传递性(transitivity):∀x,y,z∈A,(xRy∧yRz)⟹xRz;
对于严格偏序关系R,如果进一步满足下面这条,就称为严格全序关系(strict total ordering):
- 三歧性(trichotomy):∀x,y∈A,(xRy)∨(yRx)∨(x≡y);
对于非严格偏序关系R,如果进一步满足下面这条,就称为非严格全序关系(non-strict total ordering):
- 全序性(totality):∀x,y∈A,(xRy)∨(yRx);
良序
我们把A×A上的严格全序关系R记为⟨A,R⟩,注意这里我们使用了有序对的符号。严格全序也即满足反自反性、三岐性、传递性的二元关系。对于A×A上的严格全序关系R和B×B上的严格全序关系S,定义⟨A,R⟩,⟨B,S⟩是同构的当且仅当存在A→B的双射f满足∀x,y∈A,xRy⟺f(x)Sf(y),记为⟨A,R⟩≅⟨B,S⟩,f就称为⟨A,R⟩到⟨B,S⟩的同构映射(isomorphism)。
定义有序对⟨A,R⟩是良序的(well-ordered),当且仅当⟨A,R⟩是一个严格全序关系,且对于任意A的非空子集S都存在m∈S使得∀n∈S,(n=m)⟹mRn。可以看到,这个m就是R作为序关系意义下S中的最小元(R-least element)。
定义pred(A,x,R):={y∈A∣yRx},也即序关系R下全体“小于”x的元素的集合。
对于良序的严格全序关系,有以下基本定理:
若⟨A,R⟩是良序的,则对于任意x∈A,⟨A,R⟩≅⟨pred(A,x,R),R⟩。直观上,一个好的序关系会因为pred(A,x,R)排除了x以及比x大的元素,从而使得pred(A,x,R)作为A的真子集并不能和A一一对应。
严格证明:
假设存在f作为同构映射。根据概括公理,S={y∈A∣f(y)=y}是A的一个子集。
首先验证S是非空的,因为f(x)∈pred(A,x,R),而x∈pred(A,x,R),因此f(x)=x,从而x∈S。
其次,因为⟨A,R⟩是良序的,因此S有最小元m。因为m∈S,所以f(m)=m。因为m是S的最小元,所以对于任意z满足zRm,一定有z∈S。因为z∈/S,所以根据S的定义有f(z)=z。现在,根据同构的定义,zRm当且仅当f(z)Rf(m)当且仅当zRf(m)。
下面我们证明mRf(m)。反证法,如果f(m)Rm,那么用f(m)代入z可得f(m)Rf(m),违反了反自反性。所以mRf(m)。证毕。
下面让我们分类讨论x和m的大小关系。
若x=m,由f(x)∈pred(A,x,R),因此f(x)Rx,所以f(m)Rm,矛盾;
若xRm,这与x∈S且m是S的最小元矛盾;
若mRx,则m∈pred(A,x,R)。根据f是满射,存在a∈A使得f(a)=m。再次分类讨论a与m的序关系:
若aRm,则a∈/S,则f(a)=a=m,矛盾;
若a=m,则f(m)=m,矛盾;
若mRa,则f(m)Rf(a),也即f(m)Rm,矛盾;
综上所述,f不存在。
证毕。
若良序⟨A,R⟩与⟨B,S⟩同构,则该同构映射是唯一的。
证明:
假设存在两个不同的同构映射f,g。根据概括公理,S={y∈A∣f(y)=g(y)}是A的一个非空子集。S有最小元m。对于任意z满足zRm,有z∈/S,从而f(z)=g(z)。因此集合{f(z)∣zRm}与集合{g(z)∣zRm}是同一个集合。
下面证明pred(B,f(m),S)=pred(B,g(m),S):对于任意b∈B,b∈pred(B,f(m),S)当且仅当bSf(m)当且仅当存在z∈A使得zRm且f(z)=b(同构的定义)。而f(z)=g(z),因此这当且仅当存在z∈A使得zRm且g(z)=b,当且仅当bSf(m),当且仅当b∈pred(B,g(m),S)。
下面证明f(m)=g(m)。假设 f(m)=g(m)。因为S 是全序关系,不妨设 f(m)Sg(m)(g(m)Sf(m)同理)。我们有f(m)∈pred(B,g(m),S)。因为pred(B,f(m),S)=pred(B,g(m),S),所以也有f(m)∈pred(B,f(m),S)。这意味着f(m)Sf(m),违反了反自反性。证毕。
但是m∈S,所以f(m)=g(m),矛盾。
证毕。
对任意两个良序⟨A,R⟩与⟨B,S⟩,则以下三条一定恰好成立一条:
(a) ⟨A,R⟩≅⟨B,S⟩
(b) ∃y∈B,⟨A,R⟩≅⟨pred(B,y,S),S⟩
(c) ∃x∈A,⟨pred(A,x,S),R⟩≅⟨B,S⟩
这意味着,任何两个良序之间都是可以在同构的意义下互相“比较”的。
证明:
令f={⟨v,w⟩∣v∈A∧w∈B∧⟨pred(A,v,R),R⟩≅⟨pred(B,w,S),S⟩}。
首先验证f是一个函数。对于任意v∈A,w1,w2∈B,若⟨v,w1⟩∈f且⟨v,w2⟩∈f,则根据 f 的定义,⟨pred(B,w1,S),S⟩≅⟨pred(A,v,R),R⟩≅⟨pred(B,w2,S),S⟩。我们有w1=w2:假如w1=w2,那么不妨设w1Sw2,此时pred(B,w1,S)=pred(pred(B,w2,S),w1,S),由上面的第一条定理可得⟨pred(B,w1,S),S⟩≅⟨pred(B,w2,S),S⟩,矛盾。
其次验证f是一个单射。对于任意v1,v2∈A,w1,w2∈B,若⟨v1,w1⟩∈f且⟨v2,w2⟩∈f,则⟨pred(A,v1,R),R⟩≅⟨pred(B,w1,S),S⟩与⟨pred(A,v2,R),R⟩≅⟨pred(B,w2,S),S⟩。若w1=w2,则⟨pred(B,w1,S),S⟩≅⟨pred(B,w2,S),S⟩,因此⟨pred(A,v1,R),R⟩≅⟨pred(A,v2,R),R⟩。同理可证v1=v2。因此f是单射。
下面验证f保持序关系,也即∀u,v∈dom(f),uRv⟺f(u)Sf(v)。
左推右:固定u,v满足uRv,则u∈pred(A,v,R)。设f(v)=w,那么⟨pred(A,v,R),R⟩≅⟨pred(B,w,S),S⟩,设此同构映射为h。将h的定义限制在pred(A,u,R)上,记为h′,那么h′即为⟨pred(A,u,R),R⟩到⟨pred(B,h(u),S),S⟩的同构映射。根据f的定义,这意味着f(u)=h(u)。根据uRv,有u∈pred(A,v,R),因此h(u)∈pred(B,w,S),因此h(u)Sw。因此f(u)Sf(v)。
右推左:如果f(u)Sf(v),同时¬uRv。由三岐性,要么u=v,要么vRu。如果u=v,那么f(u)=f(v),与f(u)Sf(v)矛盾;如果vRu,那么f(v)Rf(u),矛盾。
由此可见,f是⟨dom(f),R⟩到⟨ran(f),S⟩的同构映射。
下面我们证明,f的定义域dom(f)是A的初始线段(initial segment),也即∀u,v,(uRv∧v∈dom(f))⟹u∈dom(f)。对于任意v∈dom(f),令f(v)=w。根据f的定义,存在同构映射h使得⟨pred(A,v,R),R⟩≅⟨pred(B,w,S),S⟩。对于任意u满足uRv,将h的定义限制在pred(A,u,R)上,记为h′,那么h′即为⟨pred(A,u,R),R⟩到⟨pred(B,h(u),S),S⟩的同构映射。可见u∈dom(f)。
下面我们证明,f的值域ran(f)是B的初始线段,也即∀u,v,(uSv∧v∈ran(f))⟹u∈ran(f)。对于任意v∈ran(f),令f(w)=v。根据f的定义,存在同构映射h使得⟨pred(A,w,R),R⟩≅⟨pred(B,v,S),S⟩。对于任意u满足uSv,将h的值域限制在pred(B,u,S)上,记为h′,那么h′即为⟨pred(A,h−1(u),R),R⟩到⟨pred(B,u,S),S⟩的同构映射。可见u∈ran(f)。
在良序中,初始线段要么是全集,要么是某个元素的pred。因此,dom(f)要么是A,要么存在x∈A使得dom(f)=pred(A,x,R)。同理,ran(f)要么是B,要么存在y∈B使得ran(f)=pred(B,y,S)。
下面证明,不可能dom(f)=A且ran(f)=B。假设dom(f)=A且ran(f)=B,那么存在x∈A和y∈B,使得dom(f)=pred(A,x,R),ran(f)=pred(B,y,S)。然而f是dom(f)到ran(f)的同构,因此⟨pred(A,x,R),R⟩≅⟨pred(B,y,S),S⟩。因此f(x)=y,也即x∈dom(f)。但是dom(f)=pred(A,x,R),矛盾。
因此,dom(f)=A和ran(f)=B中至少有一个成立。因此只剩下三种可能的情况:
(1) dom(f)=A且ran(f)=B:此时结论 (a) 成立;
(2) dom(f)=A且ran(f)⊊B:此时存在y∈B使得ran(f)=pred(B,y,S),结论(b)成立;
(3) dom(f)⊊A且ran(f)=B:此时存在x∈A使得dom(f)=pred(A,x,R),结论(c)成立;
最后,由我们先前证明的第一条定理,这三条结论是互斥的。
证毕。
公理6:无穷公理
∃x(∅∈x∧∀y(y∈x→y∪{y}∈x))
公理7:幂集公理
∀x∃y∀z(z∈y↔∀w(w∈z→w∈x))
公理8:Foundation公理
∀x(∃y(y∈x)→∃y(y∈x∧¬∃z(z∈x∧z∈y)))