1 证明的必要性

数学与物理、化学等实验科学不同,不需要进行动手实验,但需要进行严格的论证并不允许有例外。

1.1 经验归纳的结果不一定正确

例 1.1.1 观察,都是素数,但不是素数

例 1.1.2 Fermat注意到,对于任意整数,方程没有整数解。现考虑方程,可以验证

要验证数学猜想(如Riemann猜想),必须给出数学证明。数学证明是由公理出发,一步步根据逻辑规则列出命题,最后达到需要证明的猜想或命题的终点的过程。若猜想被成功证明,他就被称为定理。以下两个证明为反证法典型例子。

1.2 反证法

例 1.1.3 不是有理数。

证明 假设是有理数,那么它可以写成的形式,其中不全为偶数。因为,那么,于是为偶数。又因为为偶数,进而存在某个整数使得,于是,所以也为偶数。这是一个矛盾,于是不是有理数。

例 1.1.4 存在无穷多个素数。

证明 不妨假设只有个素数:。考虑整数,它不属于先前假定的任何一个素数,且不能被其中的任何一个素数整除。这是一个矛盾,于是素数有无穷多个。

习题1.1

1.1.1 是否对于所有正整数,都有是素数?这里代表第个素数,特殊地,有

注意到,因此这个猜想不正确。

使用Python语言编写的检查程序:

def primes(n:int) -> List[int]:
"""find all primes less than n"""
ls = [2]
for i in range(3, n):
if not [j for j in ls if i%j==0]:
ls.append(i)

return ls

def prod(ls:list) -> int:
"""compute product of all entries of a list"""
if len(ls) == 1:
return ls[0]
else:
return ls[0] * prod(ls[1:])

ls_bk = []
for i in range(50):
if primes(i) == ls_bk:
continue
else:
ls_bk = primes(i)

# check if prod(primes) + 1 can be divided by smaller primes
ls_ = [j for j in primes(100 * i) if (prod(ls_bk) + 1) % j == 0 and (prod(ls_bk) + 1) / j > 1]
if ls_:
print(f"Prod({ls_bk[0]} ... {ls_bk[-1]}) can be divided by {ls_}")

输出结果为

Prod(2 ... 13) can be divided by [59, 509]
Prod(2 ... 17) can be divided by [19, 97, 277]
Prod(2 ... 19) can be divided by [347]
Prod(2 ... 23) can be divided by [317]
Prod(2 ... 29) can be divided by [331, 571]
Prod(2 ... 37) can be divided by [181]
Prod(2 ... 41) can be divided by [61]
Prod(2 ... 43) can be divided by [167]
Prod(2 ... 47) can be divided by [953]

那么在例1.1.4中看似正确的推断为什么在这个习题中变成了不正确的?注意到在例1.1.4中我们仅假设有有限个素数,而在本习题中我们接受了素数是无限多个的事实。我们知道随着素数的增大,其分布是越来越稀疏的(考虑素数分布函数),于是本题中的乘积随着的增大会以很快速度增长:

其中表示的阶乘,表示两函数在不断增大时比值近似为常数。于是从定性角度来看很难保证在之间不存在一个素数使得

2 集合

2.1 集合及其上的运算

注意到集合并不能被定义这一事实(Russell悖论),我们以描述性语言来表述集合:在一定范围内拥有某种性质的对象全体,记作,自然地,也有无限集合,例如自然数集。为简便,我们通常将集合以如下形式记:

其中表示对象满足性质。也可记为,为了保持与书中记号的一致性,在此一律采用冒号的记法。接下来引入集合的一些基本公理和概念。若对象是集合中的元素,我们称属于,记为;反之,若不是中的元素,我们称不属于,记为

外延公理 两个集合相等当且仅当(if and only if,常常简记为 iff )它们拥有相同的元素

集合的交、并、差 给定两集合,定义它们的交集、并集和差集如下

处于于自然语言的模糊性,在此对以上三个定义中出现的自然语言进行规定:并且表示同时为真;或者表示中至少一个为真。

子集、幂集和空集是一个集合,其中的一部分元素可以构成新的集合,称的一个子集,记作,显然有;当存在一个中的对象不在子集中时,称真子集,记为。对于一个集合,可以定义其所有子集构成的集合,称为幂集,记作。存在一个特殊的集合称为空集,记作,它不包含任何一个元素。

注意 在证明两个集合相等时,我们通常不直接采用外延公理,而是选择证明并且,从而得出的结论

练习 证明:空集是任意集合的子集。

证明 注意到某集合是集合的子集的判定标准:

但空集中不含有任何元素,即上述推断的前提永不成立。根据 “不成立的论断可以推出一切” 的原则,我们称上述推断是虚真(Vacuously True)的。

事实上,若定义有一个从的箭头意为,空集可以是这样一个集合作为对象的范畴(Category)上的一个始对象(Initial Object)

2.2 集族

集族 若某集合的元素也是集合,则称这是一个集合族,简称集族

集族的一般并和一般交 对于集族,定义其上的一般交(非空集)和一般并如下

注意 空集的一般并还是空集,因为空集的一般并中的元素满足:对所有,有,而空集中没有元素(不存在),因此这是虚真的。然而空集的一般交不可定义,这是因为如果定义了空集的一般交,这意味着命题 “对所有” 永远为真,而这是不允许的,因为包含所有对象的集合是一个矛盾的概念(那么这样的集合是否包含它自己呢)

对于某一些无限集族(事实上,是可数的集族)我们需要定义一个指标映射,并将简记为。这样一来,子集可以像自然数一样被排序的集族 可以表示为。当然,有限集族也可以像这样标注,如。像这样的有限集族中的一般并和一般交也可以表示为

类似地,上面提到的无限集族的一般并和一般交也可以写为

习题 1.2

1.2.3 找出至少个性质,使得;找出三个性质,使得。这里表示实数集,表示整数集

对于第一个问题,考虑如下的

对于第二个问题,考虑如下的

1.2.4 尝试分别寻找满足下列条件的集合,若没有这样的集合,说明理由:

  1. 两个无穷集合,使得
  2. 两个集合,使得

对于第一个问题,考虑

对于第二个问题,根据并集和交集的定义,注意对所有的,都有;而在条件中存在,因此不存在满足条件的

3 关系

3.1 二元关系

-元组 给定集合,定义函数,这样的确定了上的个元素。将简记为,这些由确定的对象称之为集合上的一个-元组,简记为

两个集合的 Cartesian 积 给定两个集合,定义。多数情况下,若,则可将简记为(需要注意的是,在一些特殊情况下,当形如这样的集合已有其定义时,这样的简记法有时并不正确)

二元关系 集合是集合的Cartesian积的子集,我们称是集合之间的一个二元关系。若我们称元素具有关系,简记为

,我们称上的一个二元关系

例 1.3.1 定义整数集合上的一个整除关系

3.2 关系的相关定义

定义域 一个关系定义域(Domain)定义为

值域 一个关系值域(Range)定义为

集合在关系下的像(Image)定义为

逆像 集合在关系下的逆像(Pre-Image)定义为

关系的复合 集合之间的关系和集合之间的关系可以进行复合(Composition),定义为

例 1.3.2 考虑一下关系

  1. 相等关系

  2. ,有

  3. 偏序关系,可以验证

  4. 同余关系。对于整数和正整数,如果,则称关于模同余,记为

3.3 元关系

个集合的Cartesian积 给定个集合,定义它们的Cartesian积

通常也将记为

元关系 若集合,则称是一个元关系

限制和扩张上的一个元关系,集合的子集,称是关系在集合上的限制;相反地,称关系是关系在集合上的扩张

习题 1.3

1.3.2 假定,且,证明同余关系的下列性质

  1. 自反性
  2. 对称性)若,则
  3. 传递性)若,则

在第五节将会看到,这样的同余关系是正整数集上的一个等价关系。

对于1,显然有

对于2,有,所以

对于3,有,于是

其中等价 (Equivalent)的意思。

1.3.3 判断下列命题是否对任意的集合均成立。若成立,给出证明;若不成立,给出反例

对于1,左侧有,而右侧容易看出这两个集合中元素所满足的性质相同,因此这两个集合相等

对于2,类似的方法也可以判定两个集合相同

对于3,考虑,则有。从而两个集合并不相等。通过使用1的结论,我们也可以直接计算:

可以看出右侧的结果相比于左侧多出了两项,类似的现象也出现在双线性函数 (Bi-linear Functions)中:

而不是

4 函数

4.1 函数的定义

考虑二元关系的一个特例,它满足若,也即一个不能对应两个。我们称这样的关系是一个函数 (Function)。对于关系中的,我们常常将其写为或者,并称处的值。如果,称的函数,记为

例 1.4.1

  1. 实数集上的不与轴垂直的直线表示一个函数,而实数集上的序关系不是函数。

  2. 对于任意集合,定义其上的恒同函数 (Identity Function)

定理 1.4.2 两个函数相等,当且仅当两函数的定义域相等,且对于定义域中的每一个元素,函数值都相等。

我们当然可以将函数定义在有有限个集合的Cartesian积得到的集合之上,得到多元函数 (Multi-variable Functions)

我们也可以将函数的像所在的集合写为多个集合的Cartesian积,从而定义更加复杂的函数。一个典型的例子就是复数域上的恒同函数

在此复数域可以看作是在上赋予复数加法和乘法运算的结构。

定理 1.4.3是函数,则他们的复合也是函数,其定义域为,且对于其定义域中所有的,有

这个定理显然成立。

4.2 函数的一般性质

单射、满射和一一对应

  • 若函数满足对于不同的,有,或者时只有,则称函数单射 (Injective)一一的 (One-one)
  • 若函数满足对于所有的,其逆像,即每一个中的元素都有一个中的元素与之对应,则称函数满射 (Surjective)
  • 若函数既是单射又是满射,则称函数是一个双射 (Bijective)一一对应 (One-one correspondence)

拓展和限制

  • 给定函数,若,我们定义上的限制

  • 的一个限制,我们称的一个扩展

习题 1.4

1.4.1的元素个数为的元素个数为的函数有多少个?

1.4.4 给定函数,判断下列命题是否正确

  1. 是满射当且仅当任何一个中的元素都是某个中元素的像
  2. 是满射当且仅当任何一个中的元素都有某个中的元素是它的像

1.4.5 上的函数,判断下列命题是否正确

  1. 都是双射,则也是双射

1.4.6

  1. 证明对任意上的函数,若是单射,则也是单射
  2. 找出函数,使得是单射,但不是单射

1.4.7 给定函数,定义函数

判断下列说法是否正确:

  1. 是单射,则也是单射
  2. 是满射,则也是满射

1.4.11

  1. 找出实数域上的开区间之间的一个双射
  2. 找出有理数域上的开区间到有理数域上的闭区间上的一个双射
  3. 找出上的一个双射

5 等价关系与划分

5.1 等价关系

5.2 划分

6 序

6.1 全序

6.2 偏序

7 结构的例子

7.1 域

7.2 环

7.3 Peano公理