这是一份功利性的复习资料,具体的学习内容不会在这里记录。
0. 集合论
集合构成的集合称为集合族。
用叉乘表示笛卡尔积。
幂集 P(X) 是集合 X 所有子集构成的集合族,记作 2X。
集合 A,B 的对称差记作 A△B=(A\B)∪(B\A)。
0.1 关系
从 X 到 Y 的一个(有序)关系是指一个 R⊂X×Y。
A 上有一些特殊的关系:
- 自反:(x,x)∈R。
- 反自反:(x,x)∈R。
- 对称:(x,y)∈R⇒(y,x)∈R。
- 反对称:∀x=y,(x,y)∈R,(y,x)∈R 不同时成立。
- 传递。
以及空关系 ∅,全域关系 A×A,恒等关系 Ia={(x,x)∣x∈A}。
R=(A×B)−R。
关系的逆是 R−1,本质上是转置矩阵,但显然不是逆矩阵。而关系的复合是矩阵乘法,所以满足矩阵的运算律。
关系的闭包是指在关系里提娜佳边使得它获得某种性质:
- 自反闭包 r(R)=R∪IA。
- 对称闭包 s(R)=R∪R−1。
- 传递闭包 t(R)=∪i=1nRi。
若 R 满足自反,对称,传递,则是等价关系,通常记作 ∼。形如若干个完全子图(团)。
每个团都是一个等价类,对于其中一个元素 x 的等价类,记作 [x]R 或者 xˉ 或者 x/R。
集合 A 的划分记作 Π。给定等价关系后可以确定商集 A/∼={[x]∣x∈A}。
若 R 满足自反,反对称,传递,则是偏序关系,通常记作 ≼ 或者 ≤。
若 R 满足反自反,传递(此时自动反对称,采用反证法),则是拟序关系。
0.3 势
对于集合 A,B,如果存在一个从 A 到 B 的一一映射,则称集合 A 和 B 对等,记作 A∼B,称 A 和 B 有相同的势(基数)。
设 N 的基数是 ℵ0(阿列夫零),如果一个集合 A 的势是 ℵ0,那么 A 是可数集。
- 证明:有理数集可数,实数集不可数。
采用 Cantor 表的方式构造有理数:第 i 斜行构造 i−kk,k∈[1,i−1]∩Z+,这样可以构造正有理数,类似的可以构造负有理数。这样就可数了。
假设 [0,1] 中的实数是可数的,将所有实数排成无限大的矩阵,构造一个新的实数,每一位都与对角线位不同,矛盾。
A. 证明 Bernstein 定理,即单射 f:X→Y,g:Y→X 可以确定双射 h:X→Y。
待补充。
1. 古典数理逻辑
1.1 命题逻辑
蕴含关系 p→q 等价于 ¬p∨q,套了一层德摩根。
联结词的完备集:能用该集合中的联结词表达任何真值函数(任何命题公式)。
主析取范式(Principal Disjunctive Normal Form):标准与或式。
主合取范式(Principal Conjunctive Normal Form):标准或与式。
1.2 谓词逻辑
谓词逻辑使得逻辑的表达能力得到了巨大提升。
- 个体词
- 个体常元:指某个具体的对象,比如我可能可以用 s 表示苏格拉底。
- 个体变元:泛指不确定的对象,比如用 x 表示某个人。
- 谓词:描述变元的性质
- 可以有 n 元,比如说我可以定义 L(s,p) 表示苏格拉底是个哲学家。
- 本身不是命题,只有所有变元都被常元替换或被量词(诸如 ∀x)约束后,才变成命题。
根据这个逻辑,“所有人都会死”可以翻译成 ∀x(Man(x)→Mortal(x))。
- 项是“可以指代一个对象”的东西。定义是递归的:个体词是项,函数作用在项上还是项。
- 若 P 是 n 元谓词符号,t1,⋯,tn 是项,则 P(t1,⋯,tn) 是原子公式。原子公式是最小的公式单元,不能拆开。
- 所有的原子公式都是合式公式(well-formed formula),逻辑运算和谓词也可以得到合式公式。量词后面的最短合式公式就是它的作用范围,所以注意加括号。
在谓词后面出现的变元称为约束出现,而不是约束出现的称为自由出现,这是一个自由变元,有自由变元的公式不是命题。
同种量词可以交换。
现阶段只研究一阶逻辑,它的量词只能作用于个体变元。也就是说,不允许量词作用于谓词。高阶逻辑没有一个完备的公理系统。
范式的目的是将任意谓词公式写成“量词在前,内核在后”的标准形态。
首先是前束范式(Prenex Normal Form),形如:
Q1x1Q2x2…QnxnM
其中每个 Qi 是 ∀ 或 ∃,母式 M 中不含量词。
首先要消除 → 和 ↔,然后将所有的否定移到原子公式前面,最后不断前移量词即可。
Skolem 范式在前束范式基础上,消去所有存在量词,只保留全称量词,但引入新函数/常量来“模拟”存在性。
Skolem 化后的公式与原公式不逻辑等价,但保持一个关键性质:原公式可满足 当且仅当 Skolem 范式可满足(等可满足性)。
给定前束范式 Q1x1…QnxnM。
从左到右扫描量词前缀,遇到 ∃xi 就执行:
- 情况A:∃xi 前面没有全称量词(即它是最左端或前面都是 ∃),则用一个新的常量符号 c(Skolem 常量,在原语言中未出现)替换母体 M 中所有 xi 的出现,并删除该 ∃xi。
- 情况B:∃xi 前面有 m 个全称量词 ∀y1,…,∀ym(即这些 ∀ 在该 ∃ 的左侧),则用一个新的 m 元函数符号 f(y1,…,ym)(Skolem 函数,新符号)替换母体中所有 xi,并删除该 ∃xi。
保留所有 ∀ 量词和替换后的母式。
比如 ∃x1∃x2∀x3∀x4∃x5∀x6∃x7P(x1,x2,x3,x4,x5,x6,x7) 化 Skolem 范式就是 ∀x3∀x4∀x6P(a,b,x3,x4,f(x3,x4),x6,g(x3,x4,x6))。
2. 图论
Dijkstra 按照 O(n2) 的方式求解,列表格 S,∣V∣−S,d(i)。
设图 G 有哈密顿回路,则对任意顶点自己 S⊂V,都有 ω(G\S)≤∣S∣,其中 ω 代表该图的连通块数,判定时 ∣S∣≥1。若存在哈密顿通路,则 ω(G\S)≤∣S∣+1。
3. 初等数论
模 m 的同于关系是一个等价关系,每一个等价类是一个同余类(剩余类)。
从 m 个同余类中各选区一个代表元,得到完全剩余系。
在试卷上书写 5 行表格来实现扩展欧几里得算法。始终有 ri=aSi+bTi。开始时假设 a≥b。当 rk+1=0 时,最终得到 aSk+bTk=rk=gcd(a,b)。
| k | 0 | 1 | ⋯ |
|---|
| qk | - | - | |
| rk | a | b | |
| Sk | 1 | 0 | |
| Tk | 0 | 1 | |
其中 q,r 正在执行辗转相除,因此 qk=rk−2÷rk−1,rk=rk−2−qkrk−1。非常巧妙的是 S,T 的递推公式和 r 长得一摸一样。
逆元存在的充要条件是 gcd(a,m)=1。
CRT:∑biMiti,其中 Mi=miM,Miti≡1(modm)i。
将 n 质因数分解,φ(n)=n∏(1−pi1)。
欧拉定理:若 gcd(a,m)=1,则 aφ(m)≡1(modm)。
- 证明:若 x>1,a,b>0,则 gcd(xa−1,xb−1)=xgcd(a,b)−1。