zoukankan      html  css  js  c++  java
  • 【集合论】 02

    1. 公理系统

      先来看看康托尔对集合的定义:“一个集合是我们知觉中或理智中的、确定的、互不相同的事物的一个汇集,被设想为一个整体”。尽管康托尔本人已经建立起了相当广泛而深刻的集合理论,但对于集合本身的定义却还是含糊的,他的理论被称为“朴素集合论”(Native Set Theory)。虽然试图描述集合的每个属性,但其中“汇集”、“整体”等词其实是和“集合”等价的。定义的含糊使得各种悖论趁虚而入,这也成为反对者们的主要攻击目标。之后,策梅洛(Zermelo)为集合建立了一套公理化系统,并由弗兰克尔(Fraenkel)进行了扩充和修正,被称为ZF公理系统,包含选择公理(见下文)的ZF系统简称为ZFC系统。ZFC系统对集合的限制比较严格,后来由冯·诺伊曼(von Neumann)、哥德尔(Gödel)等人建立的GB公理系统则宽松很多,但这里仅介绍ZFC系统。

                        

    Zermelo(1871 - 1953)          von Neumann(1903 - 1957)               Gödel(1906 - 1978)

    1.1 有限集

      公理化系统中对原始概念不作定义,而只给出一些限定条件和定义,并在此基础上进行推理。同样,公理集合论中对集合不作定义,它是我们讨论的唯一对象。另外,集合间有未定义的基本关系:(Ain B),可以说成(A)是(B)的元素(member),或(B)包含(A)。任何概念都首先有一个基本关系“等于”,ZFC系统的第一个公理就对“等于”作了定义,该公理其实可以看作是“等于”和“属于”的互相定义和描述。需要说明的是,虽然以下的结论都只有启发性的描述,严格的证明都是要从公理或定理推出的。

      【ZFC-1外延公理(Atom of Extensionality):如果对任意(x),(xin A)当且仅当(xin B),则(A=B)。

    [forall Aforall B(forall x(xin ALeftrightarrow xin B)Rightarrow A=B)]

      鉴于语言不方便也不精确,公理系统采用了一阶谓词逻辑的语言。使用(Ain B)和(A=B)作为原子公式,加上逻辑操作符( eg)、(wedge)、(vee)、(Rightarrow)、(Leftrightarrow)、(forall)、(exists)可以组成复杂的公式,原子公式的否定可以简写为(A otin B)和(A e B)。如果(C(x))是一个含有(x)的公式,且(x)不受(forall)、(exists)限制,则(C(x))称为(x)的一个条件

      ZFC系统共10条公理,除去外延公理,其它9条都是对集合的限定,后续讨论的集合必须可以由这些公理构造。公理将集合限定在可控制的范围内,消除了悖论的产生,下面我们就从零开始,构建集合的大厦。

      【ZFC-2】 空集公理(Atom of Empty Set):存在不含任何元素的集合。

    [exists Aforall x(x otin A)]

      空集公理承认不包含任何元素的集合是存在的,这样就避免了追究元素到底是什么。更重要的是,空集公理承认了至少有一个集合存在,有了这块砖,集合的大厦就有了基础。当然,根据外延公理,空集都是相等的,即空集是唯一的(这样的推论以后不再赘述),一般记作(varnothing)。

      有了一个集合,接下来可以构造包含1个元素、2个元素...的集合。它们的数量非常庞大,如何用尽量少的公理去构造它们?我们直接来看看ZFC系统是如何解决的:

      【ZFC-3偶集公理(Atom of Pairing):对任何集合(a)、(b),都存在仅包含它们的集合(A)。

    [forall aforall bexists Aforall x(xin ALeftrightarrow x=avee x=b)]

      【ZFC-4并集公理(Atom of Union):对任意集合(M),存在集合(A),它的任何元素属于(M)的某个元素。

    [forall Mexists Aforall x(xin ALeftrightarrowexists X(Xin Mwedge xin X))]

      偶集公理开始对集合进行打包,构造更上层的集合,选择两个集合是因为1是无法扩展的,而且(a=b)时也有(M={a})。并集公理将打好的多个包合并为一个包,它用操作符(cup (M))表示,也可以对元素直接操作,比如(cup{a,b}=acup b)。借助偶集公理它可以继续扩展集合元素的数量,比如({a,b,c}=cup{{a,b},{c}})。另外要注意,并集公理并不限于两个集合的并,这为无穷集提供了很好的工具。

      有了这3个公理,任何有限集都可在有限步内构造完成,有限的世界已经没有什么秘密了。如果再加上((cup),intersection)、((cap),union)、((-))的运算和子集((subseteq))、真子集((subset))的概念,就和我们高中学习的集合没什么两样了。当然还有这么一个妖艳的计算并集的公式:容斥原理,它在概率论和组合学中经常出现,觉得公式复杂的画个文氏图就一目了然了。

    [left| {igcuplimits_{i=1}^n{{A_i}}} ight| =sumlimits_{k=1}^n{{{(-1)}^{k-1}}sumlimits_{1le{i_1}<cdots<{i_k}le n}{left| {{A_{{i_1}}}capldotscap{A_{{i_k}}}} ight| }}]

      在向无穷集进发之前,我们需要休整一下,再了解几个今后有用的公理和概念。

      【ZFC-5幂集公理(Atom of Power Set):集合(A)的一切子集组成集合。

    [forall Aexists Pforall X(Xin PLeftrightarrow Xsubseteq A)]

      【ZFC-6子集公理(Atom Schema of Separation):存在满足给定条件的子集。

    [forall Bexists Aforall x(xin ALeftrightarrow xin Bwedge C(x))]

      幂集构建了一个很大的上层集合,为子集公理提供了非常好的限制集,(A)的幂集一般记作(mathscr{P}(A))。子集公理说明:满足一定条件集合,只有被限定在某个集合中时,才能组成集合。这使得集合不能是过于庞大的汇合,从而消除了各种悖论。考虑以下“集合”(很容易导出矛盾):(1)一切不属于自己的集合(罗素悖论,Russell's Paradox);(2)包含所有集合的集合。对于限制集比较明显的场合,也可以用({x|C(x)})来表示子集。

                        

    Russell(1872 - 1970)               Peano(1858 - 1932)            Dedekind(1831 - 1916)

    1.2 关系

      数学处理的对象除了数之外,更多的是关系,而关系一般由有序对组成。集合中的元素是没有顺序的,需要为有序对(ordered pairs)建立模型。集合论中比较通用的有序对定义是:((a,b)={{a},{a,b}}),你可以尝试证明其合理性。笛卡尔积(A imes B)定义为如下,它的限制集为(mathscr{P}(Acup B))。只包含有序对的集合叫关系,(xRy)表示((x,y))在关系(R)中,关系(R)所有元素的第一个元素组成定义域({ m dom}(R)),所有元素的第二个元素组成值域({ m ran}(R)),它们都是集合。

    [A imes B={(a,b)|ain Awedge bin B}]

      关系的复合已是我们熟悉的概念,它们分别记作(R^{-1})和(Rcirc S)。对于关系(F)值域内的每个(x),若满足(xFy)的(y)唯一,则(F)叫函数(function),且写作(F:X o Y),(X)上的二元运算则可以写做(F:X imes X o X),(X)到(Y)的一切函数组成的集合记作(Y^X),(F estriction A ={(x,y) in F|xin A})称为(F)的限制(restriction)。另外还有大家熟悉的单射满射双射(一一映射,one-to-one injection)、原象的概念就不赘述了。

    2.自然数

      集合是数学的语言,而数学首先是研究数的,所以必须用集合为数下个定义。人们最初认识的是自然数(natural number),它有着非常简单的性质:“以0为起点,以1为步长依次排列”,所有自然数的运算都可以建立在这个简单的模型上。所以定义自然数不是一件难事,著名的皮亚诺公理系统(Peano)就为自然数建立了一个很好的模型,不过这里我们只介绍冯·诺伊曼用集合为自然数下的定义。

      首先用(varnothing)定义(0)、用({varnothing})定义(1)是没有什么疑义的,那么(2)呢?用({{varnothing}})?需要强调的是,自然数有两个本质属性:一个是数量,一个是顺序,所以(2)里既要体现它的大小,又要体现它与(0)、(1)的关系。冯·诺伊曼给出了如下巧妙的定义:

    [0=varnothing,quad n+1={0,1,cdots,n}]

      当然,我们需要用集合的语言重新描述一下,定义(a^+=acup{a})为(a)的后继者(successor),任何自然数都是从(varnothing)开始的某个后继者。仔细品味这个定义,它很好地满足了量和序的双重要求。对于一个包含有(varnothing)的集合(A),如果它的任意元素的后继者还是在(A)中,(A)被称为归纳集(inductive set),但从目前的6条公理我们还不能构造出这样的“集合”,它需要单独的一条公理来保证。

      【ZFC-7无穷公理(Atom of Infinity):至少存在一个归纳集。

    [exists A(varnothingin Awedge (forall a(ain ARightarrow a^+in A)))]

      归纳集是我们构造的第一个无穷集,但要注意一个归纳集中可能含有自然数之外的的其它元素,需要剔除它们才能得到纯正的自然数集。当然,有了一个归纳集作为限制集,加上用子集公理可以这样定义自然数集:(omega ={n|nin any\,inductive\,set}),容易证明(omega)也是归纳集,并且其中只有自然数。显然,(omega)是最小的归纳集,如果它的某个子集(A)是归纳集,则有(A=omega),这就是著名的归纳原理(Induction Principle),它是我们熟悉的数学归纳法的理论依据,经常被用来证明某个性质对所有自然数都成立。

      接下来需要验证这样的自然数集是否合理,看看它与我们直观上认识的自然数集是否兼容。直观上的自然数集表现为一个有序序列,每两个自然数(m)、(n)都可以进行比较,即(m=n)、(m<n)和(m>n)中有且仅有一个成立(三歧性)。用集合定义的自然数有两个等价的关系(Ain B)和(Asubset B),反复运用归纳原理不难证明它们也有三歧性,所以可作为(A<B)的定义。自然数序列有开头而没有结尾,这个简单的性质使之区别于其它数集,而且也是后面扩展为超限数的基础。这个性质一般表现为“最小数定理”:任何自然数的集合都有最小数。证明思路是构造一个下限集,并选取其中的最大者,即是我们要找的最小数。这样看来,自然数加上(A<B)的定义,完全是和直观的自然数集相兼容的。

      类似于自然数的定义,有一种常见的递归序列(u_{n^+}=f(u_n)),序列的后一项依赖于前一项,这样的序列能否成为集合?直觉上看它和自然数集本质上是相同的,只要证明存在一个从自然数集到该序列的函数即可,这就是“递推原理”(Recursive Theorem)。虽然这个函数有明显的限制集,但由于是递归定义的,无法用有限的条件来描述它,所以简单地用子集公理是不行的。证明方法和自然数集的定义是类似的,即找寻满足条件的关系中最小那个(所有关系的交集),继而只要用归纳原理证明它满足递归条件且是函数即可。 

      有了递推原理,就可以按如下递归的方法定义自然数上的运算,容易证明它们都是(F:omega imesomega oomega)上的函数。至于这些运算的各种性质(交换律、分配律之类)也不难推导,就不再赘述了。

      (1)(m+0=m,quad m+n^+=(m+n)^+);

      (2)(mcdot 0=0,quad mcdot n^+=mcdot n+m);

      (3)(m^0=1,quad m^{n^+}=m^n cdot m)。

      归纳原理和递推原理都依赖于“前序数”,而自然数则更强调“后序者”,如果想扩展这两个原理,需要摆脱对“前序数”的依赖。一个简单而有效的做法就是依赖所有“前序数”,如同最小数定理的证明一样,我们可以关注它们的“后序者”(学完超限数,这些就更明白了)。由此可以得到更具一般性的第二归纳原理和第二递推原理:

      第二归纳原理:自然数集合(A)如果满足(forall x(x<nRightarrow xin A) Rightarrow nin A),那么(A=omega)。

      第二递推原理:存在满足递归定义(u_n=f(u estriction n))的函数。

      至此,自然数已经被很好的定义和研究了,你甚至可以自己很轻松地定义整数(integer number)和有理数(rational number),它们都可以由自然数扩展得来。但实数(real number)的定义似乎并不是那么显然,而实数却又是那样的真实和重要,必须有一个好的模型才能使微积分有个坚实的基础,这就回到了集合论创立的初衷。历史上有两个优秀的实数模型,一个来自康托尔的战友戴德金(Dedekind),一个来自康托尔本人。戴德金分割(Dedekind cut)将一个实数定义为有理数集的一个分割,这个简单而有效的定义非常适合于实数运算。康托尔则用无穷有理数列定义实数,本质是将实数定义为实无穷。关于数系的内容,我打算另开专题,这里就不展开讲了。

  • 相关阅读:
    [题解]POJ_1417_(并查集背包
    [题解]POJ_2912_(带权并查集
    [题解]luogu_P1502_窗口的星星(扫描线
    [题解/模板]POJ_1733_Pairty game(带权并查集/扩展域
    [题解/模板]悬线法luogu_P1169_棋盘制作(悬线法
    [题解]luogu_P2059_卡牌游戏(状态设计/概率dp
    [题解]luogu_P2467_地精部落(思维dp
    「CJOJ2439」军队
    「LG2397」yyy loves Maths VI (mode)
    「LG2114」起床困难综合症
  • 原文地址:https://www.cnblogs.com/edward-bian/p/3999856.html
Copyright © 2011-2022 走看看