EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

数理逻辑-期末考点合集

摘要

本文是 2024Fall-数理逻辑 的期末考点合集,包括讲义第 0 章、教材第 1-3 章内容,并标注了考点。

本文添加了一些笔者对知识的理解,这部分注明不是来自讲义或教材,仅供参考。中文版《数理逻辑(第二版)》教材中存在许多翻译错误和公式排版、印刷错误,本文指出了其中一些错误并注明错处。

考试题型:

简答题:9 个,每个 5 分,共 45 分。3 个写文字的,6 个带构造的。

大题:6 个(5 题 9 分,1 题 10 分)。第 6、7 大题,注意区分本科生/研究生题目。

主要考基本概念。

大佬镇场

Image 1 Image 2 Image 3
Image 4 Image 5 Image 6
Image 7 Image 8 Image 9

讲义 §0.2 集合

关于 ZFC 集合论及其构造思路,可参考本人博客:公理的祖先是逻辑或形式二者之一 | EagleBear2002 的博客

讲义 §0.2.15 良序关系

良序:设 (A,) 为全序集,如果任意 A 的非空子集都有 -极小元,则称 (A,) 为良序集。

讲义 §0.2.17 自然数的定义

A 为任意的集合,我们称 A+=A{A}A 的后继,AA+ 的前趋。

自然数的定义:0=,1=0+

无穷公理:所有自然数组成的整体是集合,记为 ω

讲义 §0.2.18 数学归纳法

传递集合:设 A 是一个集合,如果 A 的任意元素都是 A 的子集,则称 A 是传递集合。

三歧性:x,yA.xyx=yyx

对任意自然数 n,m 定义:m<n 当且仅当 mnmn 当且仅当 m<nm=n。(这一定义在本书的习题中已经被滥用,不仅限于自然数,在序数上都可以使用)

习题 1:证明设 A 为传递集合,则 A+ 也是传递集合。

证明:由 A 的传递性可知,aA,aA。取任意 bA+,只要证明 bA+

A+A 的后继(此处右上角的 + 并不是传递闭包),即 A+=A{A}

  1. bAbAA+
  2. bAb=A,此时 bA+ 成立。

Q.E.D.

习题 2:证明对任意自然数 n,都有 0=n0n

证明:对 n 使用数学归纳法。

  1. n=0,显然命题 0=n 成立;
  2. n=1,即 n={,{}},显然命题 0n 成立;
  3. n=k(k>1) 时命题 0n 成立,则 n=k+1 时,n=k{k},显然命题 0n 成立。

因此,对任意自然数 n,都有 0=n0n​。

Q.E.D.

讲义 §0.2.19 有穷集合和无穷集合

习题 1: 证明 ω++ω 等势。

证明:构造 f:ωω++,其中 f(0)=ω,f(1)=ω+,f(n)=n2(n2)。显然 f 是双射,因此 ω++ω 等势。

Q.E.D.

习题 2:假设 A,B,A1,B1 为满足如下条件的集合:

  1. AA1=,BB1=
  2. AB,A1B1

证明:AA1BB1

证明:由题意得,f:AB,g:A1B1f,g 为双射。

构造 h:AA1BB1

h(x) = \left\set\begin{matrix} f(x) & \text{if } x \in A \\ g(x) & \text{if } x \in A_1\\ \end{matrix}\right.

显然,h 为双射。因此 AA1BB1

Q.E.D.

习题 3:设 A,B 为两个集合,证明:

(1)AB 当且仅当 AB 的某个子集等势。

证明:先证充分性。若 AB,则 f:AB 是一个单射。令 C=ran(f)B,则 f:AC 是双射,因此 AC

再证必要性。若 DB.AD,则 g:AD 为双射。因此 g:AB 是单射,故 AB

Q.E.D.

讲义 §0.2.21 有穷集合

习题:设 A,B 为两个集合,试证明:

(1)如果 A 有穷,BA,则 B 也是有穷集合。

证明:A 是有穷集合

nω.An

Bn

B 是有穷集合。

Q.E.D.

讲义 §0.2.22 可数集合

习题 1:设 A,B 为两个可数集合,且 A,B 不相交,即 AB=。证明:AB 也是可数的。

证明:A,B 可数意味着 f:ωA,g:ωBf,g 为满射。构造

h(n) = \left\set\begin{matrix} f(\frac{n}{2}) & \text{if } n \text{ 为偶数} \\ g(\frac{n-1}{2}) & \text{if } n \text{ 为奇数} \\ \end{matrix}\right.

显然 h:ωAB 为满射。因此 AB 可数。

Q.E.D.

习题 2:证明:

(1)对任意 kω 有,ωk 都是可数集合(约定 ω0={},ω1=ω);

(2)集合 {ωk|kω} 是可数的。

TODO:这道题用到了构造 A×Bω 的函数,需要记住。

(1)证明:引理:两个可数集合的笛卡尔积是可数集合。对于可数集合 A,Bf:Aω,g:Bω 为单射。构造 h(x,y)=(f(x)+g(y))×(f(x)+g(y)+1)2+g(y) ,则 h:A×Bω 为单射。因此 A×B 可数。

下面进行归纳:

k=0 时,ω0={} 显然是可数集合。

k=1 时,构造 f1:ωωf1(x)=x 为双射,可知 ω1 为可数集合。

ωk 为可数集合和引理可知,ωk+1=ωk×ω 为可数集合。

因此,对任意 kω 有,ωk 都是可数集合。

Q.E.D.

(2)证明:由定理 0.2.7,可数多个可数集合的并仍然是可数集合,因此 {ωk|kω} 是可数集合。

Q.E.D.

讲义 §0.2.24 不可数集合(不考)

习题 1:令 FUN(ω,ω) 表示所有从 ωω 的映射组成的集合,即 FUN(ω,ω)={f|f:ωω},用对角线方法证明 FUN(ω,ω) 是不可数的。

证明:使用反证法。假设 FUN(ω,ω) 可数,不妨设 FUN(ω,ω)={f0,f1,f2,}

构造新映射 f:ωωf(n)=fn(n)+1

  1. fFUN(ω,ω),与 FUN(ω,ω) 的定义相矛盾;
  2. fFUN(ω,ω),但 nN.f(n)fn(n),矛盾。

假设不成立。原命题成立。

Q.E.D.

讲义 §0.2.25 序数

具有三歧性的传递集合叫做序数。每个自然数都是序数,ω 是序数。

本书中对序数的定义并不直观,也没有说明序数的用途。此处补充序数的描述:

在数理逻辑中,序数(ordinal numbers) 是一种用于表示集合的“大小”和“顺序类型”的概念,尤其在集合论、公理集合论和模型论中起着重要作用。序数扩展了自然数的概念,可以用来描述无穷集合的大小和结构,起到了将有限和无限统一到同一框架下的作用。

序数是良序集的等价类。直观地,序数可以理解为一种表示“位置”的标签,且这些标签本身是有序的。

习题:设 S 为序数集合,证明:

(1)如果 αS 的最大元,则 α=S

(2)如果 S 中无最大元,则对任何的 β 属于 S,有 β<S

(1)证明:αS 的最大元,由三歧性得,βS.β=αβα

S 是传递集合,βS.βα,即 S 中任意元素都是 α 的子集,因此 Sα

αS 得,αS

因此 α=S

Q.E.D.

(2)证明:由传递集合得,βS.βS

S 中没有最大元,即 βS.γS.β<γ,因此 βS

因此,β<S

Q.E.D.

讲义 §0.2.26 超穷归纳法

如果 α 存在前趋,称 α 为后继序数。不是后继序数的非零序数称为极限序数。

习题:设 α,β 为序数,且 α0

(1)α 是极限序数,当且仅当 α=α

(2)如果 βα,且 βα 的最大元,则 α=β+

(1)证明:

先证必要性(α 是极限序数 α=α):如果 α 是极限序数,那么 βα.β<α,并且 α 中没有最大元。

α 的传递性可知,α 中任意元素都是其子集,因此 αα

βα.xβ.xα 因此 βα。又由传递性,βα,因此 βα。因此 αα。(TODO:这一步有点问题)

因此 α=α

再证充分性(α=αα 是极限序数):假设 α=α。这意味着 α 是由它自身的所有元素组成的,并且对于每个 βα,都有 βα

如果 α 不是极限序数,则 α 中应有一个最大元 γ,使得 α=γ+。由上一题结论,α=γ,但这与假设 α=α 矛盾。因此,α 不能有最大元。

因此,α 必须是极限序数。

Q.E.D.

(2)证明:由 βα 中最大元,γα.γβ,且 α 为后继序数(TODO:这一步怎么来的?)。设 α=β0+=β0{β0},只要证明 β=β0

β<β0,与 βα 中最大元矛盾;

β0<β,则 α=β0+β,与 βα 矛盾。

因此,β=β0

Q.E.D.

讲义 §0.2.28 可数序数

定义 ω1={αα 是可数序数}ω1 是序数,且不可数。

定义 ωα+1={ββ 是序数且 βωα}

讲义 §0.2.29 基数

α 是序数,如果对于任意的 β<α 都有 βα,则称 α 是基数。

讲义中对基数的定义十分诡异,我们在这里补充教材中对基数的定义。集合 A 的基数 card A 是与 A 大小相等的最小序数,基数的意义是用于比较集合的大小:

card A=card BAB

习题 1:设 α 为基数,κ 为集合 {β|β  α } 的最小元。证明:κ 是基数。

TODO:看不明白过程

证明:对每个序数 γ<κ,即 γκ,有 γκ,即 γκγκ

又因为 κ 为集合中最小元,因此 γκ

Q.E.D.

习题 2:对任意的 α 都有,αωα

TODO

教材 §1 命题逻辑

教材 §1.1 命题逻辑的语言

习题 2:证明不存在长度为 2、3、6 的合式公式,但其他任意正整数长度的合式公式都可能存在。

证明:用 len(α) 表示公式 α 的长度。定义谓词 P,命题 P(α):len(α){2,3,6}

对所有命题符号 Anlen(An)=1,命题 P(An) 成立。

对所有非命题符号的合式公式 α 归纳:

下面证明:若组成合式公式 α 的合式公式 β,γ 均有 P(β),P(γ) 成立,则 P(α) 成立。

  1. α=(¬β),则 len(α)4len(α){2,3}。若 len(α)=6,则 len(β)=3,与 P(β) 矛盾;
  2. α=(βγ)(其中 {,,,}),显然 len(α)=len(β)+len(γ)+3>5。若 len(α)=6len(β)+len(γ)=3,与 P(β)P(γ) 矛盾。

因此,len(α){2,3,6}

下面证明 len(α) 可以为其他任何长度。

len 函数存在如下递归关系:

len(An)=1len((¬α))=len(α)+3len((αAn))=len(α)+4

显然,len(α) 可以为 {1,4,5,7,8,9} 中的任何值。根据长度为 7、8、9 的公式,可以根据 len((¬α))=len(α)+3 构造长度为大于 9 的任意整数的公式。

Q.E.D.

习题 3:设 α 是一个合式公式,c 是二元连接符(,,,)出现的次数,s 是命题符合出现的次数(例如,若 α=(A(¬A)),则 c=1,s=2)。使用归纳法证明:s=c+1

证明:命题 P(n):当 c=n 时s=c+1

c=0 时,α=Aα=(¬A),其中 A 是命题符号。P(0) 成立。

若当 cn(n1) 时都有 P(c) 成立。则当 c=n+1 时,α=(βγ),其中 cα=cβ+cγ+1,sα=sβ+sγ=cβ+cγ+2=cα+1。此时 P(n+1) 成立。

因此,对任意 c0,都有 P(c) 成立。

Q.E.D.

教材 §1.2 真值指派

对于命题符号集合 S,真值指派 v 是函数:

v:S{T,F}

S¯ 是由 S 通过 5 种公式构造运算得到的合式公式的集合,我们将 v 扩展到 v¯

v¯:S¯{T,F}

我们称真值指派 v 满足 φ,当且仅当 v¯(φ)=T

重言蕴含:Στ 当且仅当满足 Σ 中每个合式公式的真值指派也满足 τ{σ}τ 也记为 στ

重言式: τ 也记为 τ

重言等价:στ 并且 τσ,记为 σ⊨=|τ

紧致性定理:设 Σ 是合式公式的无限集合,如果对于 Σ 中的任意有限子集 Σ0,都存在一个真值指派满足 Σ0 中的每个合式公式,那么,就存在一个真值指派满足 Σ 的所有合式公式(即,如果 Σ 的任意有限子集可满足,则 Σ 可满足)。

习题 6:(a)证明:如果两个真值指派 v1,v2 与在合式公式 α 中出现的命题符号的指派是一致的,那么 v1(α)=v2(α)。(使用归纳法则)。

证明:设 ε1,ε2,,εnα 的构造序列。

Aα.v1(A)=v2(A)v1(ε1)=v2(ε1)kn.v1(ε1,ε2,,εk)=v2(ε1,ε2,,εk)v1(α)=v2(α)

Q.E.D.

习题 8:(置换)α1,α2, 一个合式公式的序列,对每个合式公式 φ,令 φ 是用 αn 置换 An(对所有 n)后得到的结果。

(a)设 v 是所有命题符号的真值指派,定义 u 为满足 u(An)=v(αn) 的真值指派,证明 u(φ)=v(φ) 使用归纳法。

(b)证明如果 φ 是重言式,那么 φ 也是。(例如,((AB)(BA)) 是一个重言式,因此对任意的合式公式 α,β,通过置换可得 ((αβ)(βα)) 是重言式)

(a)证明:命题 P(k):φ  k u(φ)=v(φ)。设 φ 的构造序列为 ε1,ε2,,εk。对 k 进行归纳:

k=1 时,ε1 为命题符号,命题 P(1) 成立。

若当 k<n(n>1) 时,命题 P(k) 都成立。

则当 k=n 时,u(εn)=v(εn),因此 u(ε1,ε2,,εn)=v(ε1,ε2,,εn)

因此,对所有 k1,命题 P(k) 都成立。

Q.E.D.

(b)证明:若 φ 是重言式。对任意真值指派 vv(φ)=u(φ)=T。因此 φ 为重言式。

Q.E.D.

教材 §1.3 解析算法

习题 3(不考):证明引理 13B 中关于运算 ε¬ 的情形。

证明:对具有该性质的合适公式的集合 S,使用归纳法。

只包括一个命题的合适公式,没有符合条件的真初始段,原命题显然成立。

下面验证 Sε¬ 下是封闭的。考虑 S 中的 α(¬α) 的真初始段如下:

  1. (
  2. (¬
  3. (¬α0,其中 α0α 的真初始段
  4. (¬α

显然,α0S。原命题显然正确。

Q.E.D.

习题 4:假定将合式公式的定义修改为去掉其中所有的右括号。对于

((A(¬B))(CD))

我们写成:

((A(¬B(CD

证明这种记法具有唯一可读性(即每个合式公式只有一个可能的分解方法)。提示:这种表达式具有的括号数和联结符号数相同。

证明:只需给出算法,可以根据每个该记法下的公式 e 和合式公式一一对应。

一种“自底向上”的构造算法:令 S 表示所有合式公式(包括命题符号)的集合。

  1. e 中出现的每个串 αβ,若 α,βS,执行替换:(¬α(¬α)(αβ(αβ)(αβ(αβ)
  2. 重复步骤 1,直到无法执行替换。

在上述算法中,每次执行替换时在 e 中增加了一个右括号 ),上述算法会在有限步骤内结束。替换后的子串都是合式公式,因此每个算法结束后 e 成为合式公式。又因为该记法下每个公式都是由某个合式公式转化而来,因此该记法下每个公式和合式公式一一对应。

Q.E.D.

直观上,上述算法每次迭代时把一个或两个短的合式公式变成一个更长的合式公式,直到包含所有的命题符号,整个公式称为一个合式公式。

教材 §1.4 归纳与递归

习题 1:设 C 是由集合 B={a,b} 在二元运算 f 和一元运算 g 的作用下生成的。试列出 C2 中的所有元素。C3C4 中各有多少元素?

Cn 是长度为 n 的构造序列的最后一个元素 x 的集合,C1=B

C2={a,b,g(a),g(b),f(a,a),f(b,b)}

size(C1)=2,size(C2)=6

枚举 C3 中的元素:

C_3 = \left\set a, b, g(a), g(b), f(a, a), f(b, b), \\ g(g(a)), g(f(a, a)), g(g(b)), g(f(b, b)), \\ f(a, b), f(b, a), f(a, g(a)), f(g(a), a), f(g(a), g(a)),\\ f(a, f(a, a)), f(f(a, a), a), f(f(a, a), f(a, a)) \\ f(b, g(b)), f(g(b), b), f(g(b), g(b)),\\ f(b, f(b, b)), f(f(b, b), b), f(f(b, b), f(b, b)) \\ \right}

因此,size(C3)=24 。同理,size(C4)=144

陆老师原话:“数字不重要,你把前两个写出来就行了,后面的太难了”。

习题 3:本节中关于要求 F 仅是 U 上的关系类的讨论可以进行推广。C 如前定义,但是如果对于每个 in,我们有 xiB 或者对某个 RF 以及某些小于 i 的数 j1,,jkxj1,,xjk,xiR,那么我们说 x0,,x1,xn 是一个构造序列。请给出 C 的正确定义,并证明 C=C

TODO:如何定义集合对多元关系(而非多元函数)封闭?

“自顶向下”的 C 的扩展定义:

我们称 U 的子集 SRF 的作用下是封闭的,当且仅当只要 x0,x1,xnS,那么 xm.x0,,x1,xn,xmRxmS。称 S 是归纳的,当且仅当 BS 并且 SR 的作用下是封闭的。令 CU 的所有归纳子集的交集,则 xC 当且仅当 x 属于 U 的每个归纳子集。

证明 C=C

首先验证 CC。我们只需要证明 C 是归纳的,即 BC 并且 CRF 的作用下是封闭的。显然 B=C1C。如果 x0,x1,xnC,则将其构造序列进行连接,并添加每个新的元素 xm,其中 x0,,x1,xn,xmR,RF,我们就得到了一个新的构造序列,并将 xm 加入了 C 中。因此,CRF 的作用下是封闭的。

其次证明 CC。考察构造序列 x0,,x1,xn,xm,对 in 进行归纳,可得到 xiC。首先 x0BC。在归纳步骤使用 C 的封闭特性即可。因此得到:

nCn=C=C={S|S }

Q.E.D.

这种题考场会出吗?根本不认得符号 😭

教材 §1.5 命题连接词

习题 1:设 G 是三元布尔函数,定义如下:

G(F,F,F)=F,G(T,F,F)=T,G(F,F,T)=T,G(T,F,T)=F,G(F,T,F)=T,G(T,T,F)=F,G(F,T,T)=F,G(T,T,T)=F.

(a)给出一个仅使用 ,,¬ 的能够实现的合式公式;

(b)给出一个合式公式,其联结词最多出现 5 个。

(a)观察可知,当且仅当三个参数中只有一个 T 时,函数值为 T

构造析取范式:

G(A,B,C)=(A¬B¬C)(¬AB¬C)(¬A¬BC)

(b)将上述函数简化:

G(A,B,C)=(A¬(BC))(¬A(B+C))=((BC)<A)(A<(B+C))

思路:应用 A¬B=B<A 来减少连接个数。

习题 5:证明 {,,¬,,+} 是不完备的。提示:证明任意使用这些联结词和命题符号 A,B 的合式公式在 v¯(α) 的 4 种可能的取值下有偶数个取值为 T。说明:另一种方法是使用域 {01} 上的代数,任意使用这些联结词的可实现的布尔函数具有线性的特性。

证明:由于 AA,A¬A,α+βα¬β,其中 表示重言等价(LaTeX 中没有重言等价符号)。即 {,,+} 可以用其他连结词表示,因此只需要证明 {¬,} 是不完备的。

α 是任意只包含 A,B 的公式,只要证明在 v¯(α) 下的四种可能取值中有偶数个为 T

合式公式 AB 显然只有偶数个 T。若合式公式 α,β 有偶数个 T,则合式公式 ¬ααβ 也有偶数个 T​。

因此,该联结词集合和命题符号无法构造与 AB 等价的公式,该连结词集合不完备。

Q.E.D.

教材 §1.7 紧致性和能行性(不考)

习题 1:设 Σ 的每个有限子集都是可满足的,证明 Σ;αΣ;¬α 中至少有一个也是如此。(这是紧致性定理证明的一部分)

提示:如果不是这样,那么对于有限子集 Σ1ΣΣ2ΣΣ1;αΣ2;¬α 都是不可满足的。再考虑 Σ1Σ2

不使用紧致性定理的证明:使用反证法。如果不是这样,则对于有限子集 Σ1ΣΣ2ΣΣ1;αΣ2;¬α 都是不可满足的。因此 Σ1Σ2 也是不可满足的。这与“Σ 的每个有限子集都是可满足的”相矛盾。

Q.E.D.

习题 2:设 Δ 是满足以下条件的合式公式集合:

  1. Δ 的每个有限子集是可满足的,
  2. 对每个合式公式 α,要么 αΔ 要么 (¬α)Δ

对每个命题符号 A,定义真值指派 v

v(A)={Tiff AΔ,Fiff AΔ

证明对每个合式公式 φv¯(φ)=T 当且仅当 φΔ。(这也是紧致性定理证明的一部分)

提示:对 φ 使用归纳法。

证明:对 φ 使用归纳法。

φ 为命题符号,则根据 v 的定义,v¯(φ)=T 当且仅当 φΔ,原命题对 φ 成立。

若对于构造序列长度小于 n 的所有合式公式,原命题都成立。

则对于构造序列长度为 n 的合式公式 φ,设其构造序列为 ε1,ε2,,εn

  1. φ=(¬α)v¯(¬α)=Tv¯(α)=FαΔ(¬α)Δ,原命题对 φ 显然成立;
  2. φ=(αβ)v¯(αβ)=Tv¯(α)=Tv¯(β)=TαΔβΔ。由条件 2 可知,Δ 封闭。因此 αΔβΔαβΔ。原命题对 φ 成立。
  3. φ=(αβ),可转化为 φ=¬(¬α¬β)。根据 1 和 2 归纳即可。

因此,原命题对所有合式公式 φ 成立。

Q.E.D.

教材 §2 一阶逻辑

教材 §2.1 一阶语言

表达式是符号的任意有限序列。大多数表达式没有意义,项和合式公式是具有特定意义的表达式。

项定义为在常数符号和变量之前加上函数符号构成的表达式,如 fx

原子公式的做工相当于命题逻辑中的命题符号,原子公式是具有如下形式的表达式:

Pt1t2tn

合式公式(或公式)是指由原子公式通过使用 0 次或多次连接符号和量词符号构成的表达式。

自由变量是“没有量词约束”的变量。

句子是没有自由变量的合式公式。

概念辨析

特点 公式(Formula) 句子(Sentence)
是否含自由变量 可能含有自由变量 不含自由变量
可判定性 不能直接判定,需要赋值 可以直接判定真值
作用 描述性质或关系,通常作为表达式的一部分 完整断言,可以作为公理或定理
示例 P(x)Q(y) x(P(x)Q(x))

我们会尽量使用如下字母表:

  • 谓词符号:大写斜体的字母和 ,<
  • 变量:vi,u,v,x,y,z
  • 函数符号:f,g,h,S,+ 等;
  • 常数符号:a,b,,0
  • 项:u,t
  • 公式:小写希腊字母;
  • 句子:σ,τ
  • 公式集:大写希腊字母和特定的斜体字母(看作是希腊字母)即 A(α),T(τ)
  • 结构 §2.2,大写德文字母。

以上都是语法概念,与语义无关。

教材 §2.2 真值与模型

一阶语言的结构 A 是一个函数,把一些语法上的符号映射到有实际意义的元素。

形式上,一阶语言的一个结构是一个函数,其定义域为参数的集合,且满足以下条件:

  1. 全称量词 :指派一个非空集合 |A|,称为 A 的论域(universe)(或者定义域(domain))。
  2. n 元谓词符号 P:指派一个 n 元关系,$ P^\A \subseteq |\A|^n $,即 PA 是 P 上一个 n 元组的集合。
  3. 常数符号 c:指派一个论域 |A| 中的元素 cA
  4. n 元函数符号 f:指派一个 |A| 上的 n 元运算 fA,即 fA:|A|n|A|

例如,数论结构(§3A=(N;0,S,<,+,,E)。其中 |A|=N

若句子 σA 中为真,则称 Aσ 的一个模型,记为 Aσ。注意,中文版教材中将该公式写成了 Aσ,这是错误的。

对于结构 A,函数 s:V|A| 满足合式公式 φ 记为 Aφ[s]。这一定义可以扩充到项:s:T|A|,含义相似,下图是一个一元函数的交换图(commutative graph)。

Ts¯|A|FffATs¯|A|

一阶逻辑中全程量词的语义解释:对于合式公式 φAxφ[s] 当且仅当对每个 d|A|.Aφ[s(x|d)]。其中 s(x|d) 是一个函数,其取值在变量 x 处为 d,其他曲直与 s 相同。这一定义相当于把全称量词 A 右侧转移到了左侧,常用于证明带全称量词的命题。

习题 3:证明:{x(αβ),xα}xβ

证明:对每个结构 A 和每个函数 s:V|A|,有 Ax(αβ)[s]Axα[s],即 Ax((αβ)α)[s]。因此

Ax((αβ)α)[s]dA.A((αβ)α)[s(x|d)]dA.A(βα)[s(x|d)]Ax(βα)[s]Ax(β)[s]Ax(α)[s]

Q.E.D.

教材 §2.2.1 逻辑蕴涵

合式公式集合 Γ 逻辑蕴含合式公式 φ 记作 Γφ,当且仅当对语言中的每个结构 A 和每个函数 s:V|A|,使得 As 满足 Γ 的每个元素时,也满足 φ

在命题逻辑中(§1.2)表示重言蕴含,在一阶语言中表示逻辑蕴含。逻辑蕴涵的其他记法与重言蕴含相似,不再赘述。

下面这段话来自教材,对我们理解定义非常重要:

逻辑蕴涵的定义与第 1 章中的重言蕴涵非常相似,但是其复杂性却大大不同。在命题逻辑中想要判定一个合式公式是否是重言式,只需要考虑有限个真值指派,其中每一个都是有限函数。对每个真值指派,只要计算 v¯(α),这可以在有限长的时间内完成。(如前所述,重言式的集合是可以判定的

与之相反,如果要判定一阶语言中的合式公式是否恒真,则需要考虑每一个结构 A。(特别地,这需要使用每个非空集合,而每个集合都有很多元素)对于每个结构,还要考虑每个从变量集合 V|A| 的函数 s。并且对每一个给定的结构 As,还需要判定 A 是否以 s 满足 φ。如果 |A| 是无限的,其本身就是一个非常复杂的概念。

考虑到这些复杂性,恒真公式集的无法判定性就不足为怪了(§3.5)。奇怪的是,可以证明恒真性的概念与另外一个概念(可推导性)是等价的,这个概念更接近有限性(§2.4)。利用这个等价,在某些推理假设下,可以证明恒真集(恒真合式公式的集合)事实上是可数的。由这个可数的性质可以得到恒真公式集的一个更具体的特性。

习题 4:证明:如果 xα 中不是自由出现的,那么 αxα

证明:对每个结构 A 和每个函数 s:V|A|,由定理 22A,有:

Axα[s]d|A|.Aα[s(x|d)]Aα[s]

Q.E.D.

习题 9:设语言具有相等和二元谓词符号 P。对下面的条件中的每一个,找出一个句子 σ 使得结构 Aσ 的模型,当且仅当条件被满足。

(a)|A| 中恰好有两个元素

下面的句子 σ 满足要求:

xyxy(zy=zx=z)

该句子用自然语言描述,即集合中存在至少两个不相等的元素,且任意三个元素中都至少有两个相等,因此集合中只存在两个不相等的元素。

教材 §2.2.2 可定义性

习题 11:给出能够在 (N;+,) 中定义如下每个关系/集合的公式,假设语言具有相等符号和参数 ,+,

(a){0}

(b){1}

(c){m,n|nNm}

(d){m,n|Nm<n}

(a)xyx=y

(b)xyx=x

(c)x(n=m+xyxy=y)n=m+1

(d)x(n=m+xyxyx)n=m+xx0

习题 13(不考):证明同态定理的(a)。

h 是从 AB 中的同态,s 将变量的集合映射到 |A| 中。

(a)对每个项 t,我们有 h(s(t))=hs(t),其中 s(t) 是在 A 中计算的,而 hs(t) 是在 B 中计算的;

影印版教材中同态定理的横线印刷不清晰,本题中的表述是正确的。

证明:对于常量 ch(s(c))=h(cA)=cB=hs(c)

对于变量 xh(s(t))=h(s(x))=hs(x)=hs(x)

对于 n 元函数函数 f,按照归纳,

h(s(ft1tn))=h(fA(s(t1),,s(tn)))=fB(h(s(t1)),,h(s(tn)))=fB(hs(t1),,hs(tn))=hs(ft1tn)

Q.E.D.

习题 18:全称公式 (1) 是形式为 x1xnθ 的公式,存在公式 (1) 是形式为 x1xnθ 的公式,其中 θ 是无量词。设 AB 的子结构,$ s: V \rightarrow |\A|$。

(a)证明:如果 Aψ[s]ψ 是存在公式,那么 Bψ[s]。如果 Bφ[s]φ 是全称公式,那么 Aφ[s]

说明:(a)的意思是(当 φ 是句子时)任何全称句子 φ 在子结构中都可以保持。由于全称是语法性质,其必定与符号串相关。反过来,在子结构中保持则是语义性质,其必定与结构相关。但是这一语义性质保持了逻辑等价的语法性质(这正是我们所需要的)。即,如果句子 σ 在子结构中总是成立,那么 σ 逻辑等价于全称句子(这一点要归功于洛斯和塔斯基)。

证明:本题的证明过程要用到一阶逻辑的全称量词语义解释,以及与之相似的一阶逻辑的存在量词语义解释。后者并没有在教材中提到。

我们假设 $\vDash_{\B} \forall x_{1} \dots \forall x_{n} \theta [s] $,于是对于每个 d1,,dn|B|Bθ[s(xi|di)i=1n]

这意味着,对于每个 d1,,dn|A|Bθ[s(xi|di)i=1n]。因此,对每个 d1,,dn|A|Aθ[s(xi|di)i=1n]。等价地,Ax1xnθ[s]

用同样的证明方法,我们假设 Ax1xnθ[s],则存在 d1,,dn|A|Aθ[s(xi|di)i=1n]。进而存在 d1,,dn|B|Bθ[s(xi|di)i=1n]。可推出 Bx1xnθ[s]

Q.E.D.

习题 20:设语言有等号和二元谓词符号 P。考虑两个结构 (N,<),(R,<)

(a)试找出一个句子,它在一个结构中是真的,在另外一个中是假的。

直观来说,(N,<) 中存在“相邻”的两个数而 (R,<) 中不存在。“相邻”可以被形式化描述为“这两个数之间没有其他的数”。我们使用公式来表达这一性质:

xy(x<yz(¬(x<zz<y)))

习题 22:设 A 是结构且 h 是函数,ran h=|A|。证明存在结构 B 使得 h 是一个从 BA 上的同态。提示:取 |B|=dom h。一般地,需要使用选择公理在 B 中定义函数,除非 h 是一对一的。

证明:取 |B|=ran h,则 h:|B||A| 是满射。对每个 aA,使用选择公理定义 G(a)={b|B|h(b)=a},定义 g(a)G(a) 中的任意一个元素(例如,某个全序下的最小元素)。接下来,我们可以根据对同态的定义构造 B 中的谓词参数、常数符号函数符号对应的元素:

b1,,bnPBh(b1),,h(bn)PAcB=g(cA)fB(b1,,bn)=g(fA(h(b1),,h(bn)))

以上定义的 B 显然使得 h 为同态。

Q.E.D.

教材 §2.3 解析算法

项是通过符号函数对变量和常数的运算得到的。定义符号函数 K,使得对符号 sK(s)=1n,其中 n 是项的个数。

K(x)=10=1, 对变量 x;K(c)=10=1, 对常数符号 c;K(f)=1n, 对 n 元函数符号 f

通过如下方式将 K 扩充到表达式的集合

K(s1s2sn)=K(s1)+K(s2)++K(sn).

习题 1:对于合式公式 α 的任意真的初始段 αK(α)<1

证明:对波兰记法下的 α 使用归纳法。

  1. α=(¬β),有以下几种情况:
    • α=(K(α)=1
    • α=(¬K(α)=0
    • α=(¬βK(α)1
    • α=(¬βK(α)=1
  2. α=(βγ),有以下几种情况:
    • α=(K(α)=1
    • α=(βK(α)1
    • α=(βK(α)=0
    • α=(βK(α)=1
    • α=(βγK(α)1
    • α=(βγK(α)0

因此,总有 K(α)0

Q.E.D.

习题 2:设 ε 是包含变量、常数符号和函数符号的表达式。证明:ε 是项当且仅当 K(ε)=1 且对 ε 的任意终段 ε,我们有 K(ε)>0。提示:证明更强一些的结果:如果对 ε 的任意终段 εK(ε)>0,那么 εK(ε) 个项的连接。

证明:先证充分性。由引理 23A,K(ε)=1。由引理 23B,对 ε 的任意终段 ε,我们有 K(ε)>0

再证必要性。

ε 归纳。若 ε 长度为 1,则为变量或常数符号,命题显然成立。

ε 长度超过 1,由 K(ε)=1 且对 ε 的任意终段 εK(ε)>0,可知必然存在至少一个 n 元函数符号 f

若只存在一个 n 元函数符号 f,则由 K(ε)=1ε 中必然存在 n 个变量或常数符号,由 K(ε)1 知这些变量符号必然都出现在 ε 右端。命题成立。

ε 中函数符号的个数归纳,由 K(ε)=1 且对 ε 的任意终段 εK(ε)>0,可知 ε 必然以 n 元函数符号开始,且函数符号后恰好有 n 项。

Q.E.D.

教材 §2.4 演绎计算

教材 §2.4.1 形式演绎

假言推理(Modus Ponen,又称 MP 规则或直言三段论):

α,αββ

Λ 是 6 组逻辑公理的集合:

  1. 重言式;
  2. 去掉全称量词:xααtx,其中 txα 中的替换,即把 α 中出现的 x 换成 t
  3. 全称量词右移:x(αβ)(xαxβ)
  4. 添加全称量词:αxα,其中 xα 中不是自由出现的(自由出现的意思是无量词限定,例如 yx+y=2x 是自由出现的,y 不是);
  5. x=x
  6. x=y(αα),其中 α 是原子的,α 是有限次的将 α 中的 x 替换为 y 得到的。

教材 §2.4.2 替换

对原子公式 ααtx 是将 α 中自由出现的变量 x 都替换为 t 所得到的表达式。

(\forall y \alpha)_t^x = \left\set\begin{matrix} \forall y \alpha \text{ if } x = y \\ \forall y (\alpha_t^x) \text{ if } x \ne y \\ \end{matrix}\right.

上述定义的含义为,如果待替换的变量不是自由出现的,例如被全称量词限定的 y,则不执行替换。

教材 §2.4.4 演绎与元定理

ΓΛ 和假言推理可以获得的公式集叫做 Γ 的定理集合。

概化定理(添加全称量词):如果 Γφx 不在 Γ 的任何公式中自由出现,则 Γxφ

规则 T:如果 Γα1,,Γαn,且 {α1,,αn} 重言蕴含 β ,那么 Γβ

演绎定理:如果 Γ;γφ,那么 Γ(γφ)。从右到左叫做演绎,从左到右叫演绎定理。

习题 3:(a)设 A 是结构,且令 s:V|A|,在基本公式集上定义真值指派 v 如下:

v(α)=TAα[s]

证明:对于任意公式(基本与否均可),有:

v(α)=TAα[s]

(b)证明:如果 Γ 重言蕴含 φ,则 Γ 逻辑蕴涵 φ

(a)证明:使用归纳法证明。对于基本公式 αv(α)=v(α)=TAα[s]

对于公式 ¬αv(α)=Tv(α)=FnotAα[s]A¬α[s]

对于公式 βαv(βα)=Tv(β)=Fv(α)=TA¬β[s]Aα[s]βα[s]

Q.E.D.

(b)证明:Γ 重言蕴含 φ,意味着对每个结构 A,若对于每个 αΓv(α)=T,有 v(φ)=T

因此,对每个结构 As:V|A|,若对每个 αΓ,都有 Aα[s],则 Aφ[s]。因此,Γφ

上述证明实际上展示了“语法上的重言蕴含为什么在逻辑语义上是对的”。

Q.E.D.

习题 8:设 x 不在 α 中自由出现,证明 Q2b

(αxβ)x(αβ)

在同样的假设下,证明 Q3a:

(xβα)x(βα)

TODO:回头再看。

证明 Q2b:由规则 T,需要证明 (αxβ)x(αβ)(αxβ)x(αβ)

通过推导、反证法和假言推理,我们可以得到第一个公式等价于 x(αβ)¬(αxβ)。现在,根据第 2 组公理和假言推理,我们有 x(αβ)¬(αβ)。此外,¬(αβ)α¬(αβ)¬β 都是重言式。通过假言推理,我们得到 x(αβ)α 和 $\forall x (\alpha \rightarrow \beta) \vdash \neg \beta 广 \forall x (\alpha \rightarrow \beta)$ 重言蕴含 ¬(αxβ),根据规则 T,我们得到了需要的结果。

通过推导、反证法和假言推理,我们可以得到第二个公式等价于 ¬(αxβ)x(αβ)。对于这个公式,基于推广定理并假设 x 没有自由出现在 α 中,我们只需证明 ¬(αxβ)¬(αβ),而通过反证法、推导和假言推理,它等价于 $\set \alpha, \neg \beta } \vdash \exists x \beta $。通过假言推理,我们只需证明 $\beta \vdash \exists x \beta $,或者通过推导 $\beta \vdash \exists x \beta $,或者通过反证法和假言推理,得到 $\forall x \neg \beta \vdash \neg \beta $,这是第 2 组公理的一项。

通过将 ¬α 替换为 α ,将 ¬β 替换为 $\beta $,并使用反证法的重言式等价性,我们得到 (xβα)x(βα)

Q.E.D.

习题 9:(再替换引理)(a)试证: (φyx)xyφ 一般不相等,而且以下两种情况均有可能发生:x(φyx)xy 中的某个位置上出现,而在 φ 中同样的位置上不出现;或者反过来,xφ 中的某个位置上出现,而在 (φyx)xy 中同样的位置上不出现。

(b)证明:如果 y 不在 φ 中出现,那么在 φyx(φyx)xy=φx 可替换 y。提示:对 y 使用归纳法。

本题中证明会使用替换的定义(4)

(a)证明:如果 φ=yx,则 (φyx)xy=yy,此时 x(φyx)xy 中同样的位置上不出现。

如果 φ=xy,则 (φyx)xy=xx,此时 xφ 中同样的位置上不出现。

Q.E.D.

TODO:再看看(b)

(b)证明:如建议的那样,我们通过归纳法证明该陈述。对于变量或常量符号 $z \neq y $,如果 $z \neq x $,则 $\varphi^z_y = (\varphi^y_x)^y_x = z $,否则 φyz=y 且 $(\varphi^y_x)^y_x = x = z $。对于不包含 y 的项 $t = f_i t_1 \ldots t_n (t^y_x)^y_x = f_i ((t_1)^y_x)^y_x \ldots ((t_n)^y_x)^y_x = f_i t_1 \ldots t_n = t$。同样,对于不包含 y 的原子公式 φ=Pt1tn,通过归纳,(φxy)xy=P((t1)xy)xy((tn)xy)xy=φ(并且 x 可以替代 y 因为后者也是一个原子公式)。

此外,根据定义和归纳,如果不包含 yαβ 使得 x 可替代 yαxyβxy 中,那么 a)(¬α)xy=¬αxyx 可替代 y 在其中,且 b)$((\alpha \rightarrow \beta)^y_x = \alpha^y_x \rightarrow \beta^y_x (\forall x \alpha)^y_x = \forall x \alpha$ 不包含任何 y,因此 x 不在 \setx, y} 中,x 不自由出现在其中,x 可替代 y 在其中,且 ((xα)xy)xy=x(αxy)xy=xα

Q.E.D.

习题 11:证明 Eq3:

xyz(x=yy=zx=z)

证明:在数理逻辑中, 运算符具有右结合性,即 αβγ 的含义是 α(βγ)。本题的表达中不使用括号。

根据泛化定理,我们只需证明 $\vdash x = y \rightarrow y = z \rightarrow x = z $。根据公理组 5,我们有 $\vdash x = x $。根据公理组 6,我们有 x=yx=xy=x 和 $\vdash y = x \rightarrow y = z \rightarrow x = z $。前两个式子根据规则 T 可以推出 $\vdash x = y \rightarrow y = x $,再结合第三个式子并再次应用规则 T,可以推出 x=yy=zx=z

Q.E.D.

另一种基于命题逻辑(而不是一阶逻辑)的证明:

xyz(x=yy=zx=z)xyz(xy(yzx=z))xyz(xy¬(y=zxz))xyz¬(x=yy=zxz)

其中 就是 = 的否定。由于相等关系(或者逻辑上的相等)的传递性,¬(x=yy=zxz) 为重言式。

Q.E.D.

教材 §2.5 可靠性与完备性理论

可靠性定理:如果 Γφ,那么 Γφ

引理 25A:逻辑公理都是恒真的。

完备性定理(哥德尔 1930):

  1. 如果 Γφ,那么 Γφ
  2. 任意和谐的公式集都是可满足的。

紧致性定理:

  1. 如果 Γφ,那么存在某个有限的 Γ0Γ,有 Γ0φ
  2. 如果 Γ 的每个有限子集 Γ0 都是可满足的,那么 Γ 是可满足的。特别地,句子集 Σ 有模型当且仅当其每个有限子集有模型。

可枚举定理:

对合理的语言,恒真(valid)合式公式的集合是能行可枚举的。

定理 26A:如果句子集合 Σ 有任意大的计数的有限模型,那么就有一个无限模型。

定理 26C:对有限语言中的有限结构 ATh A 是可判定的。

习题 1:(语义规则 EI)假设常数符号 c 不在 φψΓ 中出现,Γ;φcxψ,证明:Γ;xφψ。(不使用可靠性定理和完备性定理。)

该规则将推论 24H 中的 换成了 ,该题应该从语义方面证明而不是从语法方面。

证明:Γ;φcxψ 对任意 As,如果 AΓ[s]Aφcx[s],则 Aψ[s]

对任意 As,如果 AΓ[s]Aφ[s(xcA)],则 Aψ[s]

对任意 As,如果 AΓ[s]Axφ,则 Aψ[s]

Γ;xφψ

上述证明完成了“在 A 中把 x 替换成 cA” 这件事。

Q.E.D.

习题 2(不考):证明完备性定理(a)与(b)等价。提示:Γφ 当且仅当 \Gamma \cup \set\neg \varphi} 是不可满足的,且 Δ 是可满足的当且仅当 Δ,其中 Δ 是某个不可满足的、可批驳的公式集,如 ¬xx=x

说明:类似地,可靠性定理也适用于每个可满足的公式集是和谐的。

证明:在计算机学科中,consistent 被翻译为“一致的”。

先证充分性。若(a)成立。若 Γ 不可满足,则 Γ{ϕ,¬ϕ},因此 Γ{ϕ,¬ϕ},即 Γ 不和谐。推出(b)的逆否命题。

再证必要性。若(b)成立。若 Γϕ,则对任意 A,sAΓ[s]Aϕ[s]notA¬ϕ[s]。即 Γ;¬ϕ 是不可满足的,也因此是不和谐的。导出矛盾,因此 Γϕ

Q.E.D.

习题 3:设 Γφ,且 P 是不在 Γφ 中出现的谓词符号。是否存在不出现 P 的从 Γφ 的演绎?提示:这个问题有两种不同的方法。“软”方法使用两个不同的语言,一个含有 P,另一个不含 P;“硬”方法则考虑是否能够可以从 Γφ 的演绎中消去 P

必然存在不出现 P 的从 Γφ 的演绎。

证明:使用“软”方法完成证明。

对于一个不含 P 的语言,在该语言中 Γφ,存在不出现 P 的从 Γφ 的演绎,设该演绎为 q。对于包含 P 的语言,q 同样是该语言中一个从 Γφ 的演绎。

Q.E.D.

习题 4:设 Γ={¬v1Pv1,Pv2,Pv3,}Γ 是否和谐?是否可满足?

证明:假设 A=({0,1};P),其中 PA={1},且构造 s:V|A| 使得 i>0.s(vi)=1。于是 APvi[s],APv1[s(v1|1)] 并且 notAPv1[s(v1|0)]

因此 Γ 可满足。由可靠性和完备性定理得,Γ 是和谐的。

Q.E.D.

教材 §2.6 理论的模型

理论是逻辑蕴涵意义下封闭的句子集合,T 是一个理论当且仅当 T 是一些句子的集合,该集合使得语言中的任意句子 σ

TσσT

注意:我们仅指句子,而不是带有自由变量的公式。

对语言的结构类 K,定义其理论为(记作 Th K

Th K={σ|σ  K }

这一概念由先前的特殊情况 K={A} 而来。

对于句子集合 Σ,定义 Mod ΣΣ 所有模型的类。Th Mod Σ 则是在 Σ 的所有模型中都是真的的所有句子的集合。称此集合为 Σ 的推论集,记作 Cn Σ,这样

CnΣ={σ|Σσ}=Th Mod Σ

一个句子集合是一个理论当且仅当 T=Cn T

一个理论 T 称为完备的,当且仅当对每个句子 σ,或者 σT,或者 (¬σ)T

理论 T 是有限可公理化的当且仅当对于某个有限句子集合 ΣT=Cn Σ

习题 1(不考):证明下述句子是有限恒真的(即在每个有限结构中是真的):

(a)xyz[(PxfxPxx)(PxyPyz¬Pxz)]

提示:这些句子的逆的任意模型都是无限的。

证明:题中的 negation 在计算机科学中一般被翻译为“否定”而不是“逆”。

题中公式的含义是,在论域中存在一个 x,使得 PxfxPxx 或者“Px 处不传递”。

本题的证明中反复使用了 6 条公理和概化公理。

我们按照一阶逻辑的规则对句子的逆进行恒等变形:

¬xyz((PxfxPxx)(PxyPyz¬Pxz))¬xyz[¬(PxfxPxx)(PxyPyz¬Pxz)]¬x[¬(PxfxPxx)yz(PxyPyz¬Pxz]x¬[¬(PxfxPxx)yz(PxyPyz¬Pxz)]x[¬(PxfxPxx)¬yz(PxyPyz¬Pxz)]x[Pxfx¬Pxxyz(¬Pxy¬PyzPxz)]x[Pxfx¬Pxxyz(Pxy(PyzPxz))]

如果 A 是该句子的模型,我们有:

\Th \ \A \vdash \setPxf x; \neg Pxx; \forall y \forall z (Pxy \to Pyz \to Pxz)}

只要证符合上述条件的 A 必是无限的。

由子集 {Pxfx,¬Pxx} 可知,Th A{xfx}。由 Pxfx{Pfxffx,Pffxfffx,}。由传递性 yz(PxyPyzPxz) 可知,Th A{Pfnxfmx} 对任意 0n<m 都成立。因此,A 是无限的。

Q.E.D.

特别地,A=(N;P=<,f=S) 即自然数上的后继函数和小于关系是该(a)的逆的一个模型。

习题 2:设 T1T2 是(同一语言的)理论,使得:(i)T1T2 (ii)T1 是完备的 (iii)T2 是可满足的。证明:T1=T2

证明:对任意句子 σσT2¬σT2¬σT1σT1,又 T1T2,由外延公理,有 T1=T2

Q.E.D.

习题 5(不考):给出与如下公式等价的前束公式

(a)(xAxxBx)Cx

其前束公式为:

yz((AyBz)Cx)

习题 7:考虑带有二元谓词符号 < 的语言,设 N=(N;<) 是包含(通常序的)自然数的结构。证明:存在某个初等等价于 NA,使得 <A 具有降序链。(即在 |A| 中存在 a0,a1,,使得对所有 iai+1,ai<A。)

提示:应用紧致性定理。

说明:该习题的目的在于说明在这个语言中无法表达“不存在降序链。”

证明:构造 <AaA,bA<A 当且仅当 bN,aN<N。显然 AN,且在 A 中存在 <A 的降序链,该降序链 a0,a1, 对应的正是 N 中的升序链。

Q.E.D.

“初等等价”的含义是,两个语言或结构满足完全相同的一阶逻辑公式集,在一阶逻辑的层面上“无法区分”。这道题的论证过程还有些问题,Section 2.6: Problem 7 Solution | dbFin 提供了本题的一种证明方式,但笔者认为这种证明方式也并不正确,因为其并没有定义 AAn 的关系。

习题 10:设有一个不带函数符号的有限语言,

(a)(不考)证明:可满足的 2 句子集是可判定的(术语及相关背景见 2.2 节的习题 19);

(b)证明:恒真的 2 句子集是可判定的。(2 公式是指具有形式 $$\forall x_1 \dots \forall x_m \exists y_1 \dots \exists y_n \theta$$ 的公式,其中 θ 是无量词的公式。)

说明:在一阶逻辑中,“判定问题”(Entscheidungs 问题)就是在给定一个公式后判定其是否恒真。由于丘奇定理(3.5 节),这一问题通常是无解的。这个习题给出的是判定问题中的一个可解的情形。

(a)证明:我们知道 2 句子是可满足的,当且仅当其在一个有限模型内是可满足的。在先前的习题中,我们可以判定它是否有任意模型,即其是否可满足。

(b)证明:σ 是一个可行的 2 句子,当且仅当 ¬σ 是不可满足的。通过 (a),我们知道它是可判定的。

教材 §2.7 理论之间的解释(不考)

习题 1:假设 L0L1 含有相同参量的语言,但 L0 中有一个 n 元函数符号 f 不在 L1 中,同时 L1 中有一个 (n+1) 元谓词符号 P 不在 L0 中。证明对于 L0 的任意理论 T,存在一个忠实解释将 T 解释到 L1 上。

证明:简单来说,忠实解释是指能够保持理论 T 中所有公式的真假值不变的解释。

要证明对于 L0 的任意理论 T,存在一个忠实解释将 T 解释到 L1 上,我们可以通过构造一个从 L0L1 的忠实解释来实现。

构造过程:

  1. 定义解释映射:首先,我们需要定义一个映射,将 L0 中的项和公式转换为 L1 中对应的项和公式。对于 L0 中的项,如果它们不涉及函数符号 f,则直接对应到 L1 中相同的项。对于涉及 f 的项,如 f(t1,t2,...,tn),我们定义其在 L1 中的对应项为 t,其中 P(t1,t2,...,tn,t) 成立。这实际上是在说,对于 L0 中的每一组输入 t1,t2,...,tn,在 L1 中存在一个输出 t,使得 P 关系成立。
  2. 定义公式转换:接下来,我们需要定义如何将 L0 中的公式转换为 L1 中的公式。对于不涉及 f 的原子公式,可以直接对应到 L1 中相同的原子公式。对于形如 f(t1,t2,...,tn)=s 的原子公式,我们将其转换为 L1 中的公式 P(t1,t2,...,tn,s)。对于复合公式,按照标准的逻辑运算符的转换规则进行转换。
  3. 验证忠实性:最后,我们需要验证这个解释是忠实的,即它保持了 L0 中的所有公式的真假值。这意味着,如果一个公式在 L0 下是真(或假)的,那么经过解释后,在 L1 下它也应该保持同样的真假值。这可以通过结构归纳法来证明,首先证明对于原子公式这一点成立,然后逐步扩展到所有复杂的公式。

忠实性的证明

  • 对于原子公式,如 f(t1,t2,...,tn)=s,在 L0 下它为真意味着 f 在输入 t1,t2,...,tn 时确实产生输出 s。在 L1 下,这意味着存在一个元素 s 使得 P(t1,t2,...,tn,s) 为真,这与原始的原子公式在 L0 下的意义是一致的。
  • 对于复合公式,忠实性可以通过逻辑运算符的性质和原子公式的忠实性来保证。例如,如果一个合取式在 L0 下为真,那么它的每个组成部分在 L0 下也为真,根据忠实性,这些组成部分在 L1 下也应为真,因此整个合取式在 L1 下也为真。

综上所述,通过这种方式构造的解释是一个忠实的解释,它可以将 L0 的任意理论 T 解释到 L1 上,而不会改变公式的真假值。

Q.E.D.

习题 2:设 L0 是含有等号及二元函数符号 + 的语言,L1 也一样,只不过用三元谓词符号表示加法和乘法。令 Mi=(N;+,)(i=0,1) 分别是包含自然数和加法、乘法的语言 Li 的结构。证明在 M0 中由 L0 公式定义的任何关系都能在 M1 中由 L1 公式定义。

证明:假设非空的 n 元关系 R 可以由 L0 公式 ϕN0 中定义(对于空关系结论显而易见)。

考虑 πL0 参数集到 L1 公式集中的映射,使得 π=v1=v1π+=+v1v2v3π=v1v2v3 。因为 v1v=v1v1v2xv3+v1v2v3v3=x ,以及 v1v2xv3v1v2v3v3=xN1 中为真,所以 πNL0ThN1 的解释,并且 N1ThN1 的模型。

于是,|πN1|=Na+πN1b=c 当且仅当 +N1abc 当且仅当 a+b=c ,以及 aπN1b=c 当且仅当 N1abc 当且仅当 ab=c ,表明 πN1=N0 。但是,对于每一个 s:VNN0ϕ[s] 当且仅当 πN1[s] 当且仅当 N1ϕn[s] (引理 27B)。这意味着 R 可以在 N1 中由 ϕn 定义。

Q.E.D.

教材 §3 不可判定性

本章主要学习三种方法:自代入法、对角线法和可计算法。

教材 §3.0 数论

本章涉及到的模型:

N=(N;0,S,<,+,,E)NS=(N;0,S)NL=(N;0,S,<)NA=(N;0,S,<,+)NM=(N;0,S,<,+,)

定理 30A:设 AThNN 中取值为真的句子集,且 A 的哥德尔数集合 {ααA} 是一个在 N 中可定义的集合。则我们可以找到一个在 N 中为真的句子 σ,但 σ 不能由 A 推出。

该命题的证明方式是证明哥德尔第一不完备性定理的雏形。本视频推导了证明两个哥德尔不完备定理的过程:【毕导】这个视频里说的都是真的,但你却永远无法证明_哔哩哔哩_bilibili。中文版教材的证明过程中有一些翻译错误,请以本文为准。

证明:命题的证明思路如下:

  1. 利用哥德尔数(§3.4)构造自指句子 σ
  2. 使用反证法,通过假设推出矛盾以证明假设的反面;
  3. 得出结论。

下面是命题证明的详细过程。

我们来构造一个句子 σ 来表示 σ 本身不是 A 的定理。概括地说,接下去的讨论是这样的:如果 Aσ,那么 σ 是假的,这与 A 是取值为真的句子集相矛盾。因此,σ 是取值为真的句子,但 Anotσ

为了构造 σ,我们首先考虑这样的一个三元关系 R:TODO:从这个定义开始看不懂的。推理在 §3.4 P168 定义。

(a,b,c)Riffa 是某个公式 α 的哥德尔数,c 是 α(Sb0) 的从 A 出发的某个推理上的 G 值

简言之,(a,b,c) 的含义是,哥德尔数为 a 的公式中的 v1 替换为 b,得到的推理的哥德尔数为 c

因为 {ααA}N 中可定义,因此 R 也是可定义的。(这里面的细节要等几节后才能证明)令 ρN 中定义 R 的一个公式,q

q=(v3¬ρ(v1,v1,v3))

(在此,用下列记号:φ(t)=φtv1,φ(t1,t2)=(φt1v1)t2v2,等等)

下面开始正式构造自指句子 σ,令

σ=v3¬ρ(Sq0,Sq0,v3)

σ 表示任何一个数都不是 q 的从 A 出发的某个推理上的 G 值,这个推理是将哥德尔数为 q 的公式中的变元 v1 换成数字 q 后所得到的公式的推理;即任何一个数都不是 σ 的推理 G 的值。这个句子就是毕导视频中提到的 sub(n,n,17)

下面使用反证法,通过假设推出矛盾以证明假设的反面。

假设和我们期望的结果相反,存在一个从 A 出发的 σ 的推论。我们设 k 是这个推理 G 的值,则 q,q,kR 并且

Nρ(Sq0,Sq0,Sk0)

显然

σ¬ρ(Sq0,Sq0,Sk0)

并且这两个公式说明 σN 中是假的。但 AσA 中的句子在 N 中都是真的,这就得到了矛盾。

因此,不存在 σ 的从 A 出发的推论。这样对于每个 k,我们有 q,q,kR。即对于每个 k

N¬ρ(Sq0,Sq0,Sk0),

由此我们有(使用替换引理)

Nv3¬ρ(Sq0,Sq0,v3);

即,σN 中是真的。

大题考点:TODO

  1. 定理 30A 的证明思路。要点:自指、反证法
  2. 定理 30A 中三元关系 R 是怎么定义的?其中的符号 a,b,c,α 分别代表什么?其中的推理是如何编码的?

教材 §3.3 数论的子理论

教材 §3.3.1 公理集 AE

0 是后继运算的递归边界 xSx0(S1)后继运算的递归定义 xy(Sx=Syx=y)(S2)< 运算的递归定义 xy(x<Syxy)(L1)0 是小于运算定义的递归边界 x(xnot<0)(L2)< 是一个全序 xy(x<yx=yy<x)(L3)0 是加法定义的递归边界 xx+0=x(A1)加法运算的递归定义 xyx+Sy=S(x+y)(A2)0 是乘法定义的递归边界 xx0=0(M1)乘法运算的递归定义xyxSy=xy+x(M2)0 是幂乘定义的递归边界 xxE0=S0(E1)幂乘运算的递归定义 xyxESy=xEyx(E2)

其中,S1,S2 构成对后继运算的定义,L1,L2,L3 构成对小于运算的定义,A1,A2,M1,M2,E1,E2 分别构成对加法、乘法、幂乘运算的递归定义。

大题考点:

  1. AE 公理集有哪些?分别是什么?

教材 §3.3.2 可表示关系

可定义关系:设 RN 上的 m 元关系,即 RNm。我们已经知道,公式 ρ(其中只有 v1,,vm 是自由变元)在 N 中定义 R 当且仅当对于 N 中任意的 a1,,am

a1,,amRNρ[a1,,am]Nρ(Sa10,,Sam0).

(后两个条件等价是根据替换引理)我们可以把上述结果写成两个蕴涵式:

a1,,amRNρ(Sa10,,Sam0)a1,,amRN¬ρ(Sa10,,Sam0)

可表示关系:如果在上述两个蕴涵式中,“在 N 中为真”的概念可以被更强的概念“从 AE 中推出”取代,我们称 ρ 在理论 Cn AE 中可以表示 R

a1,,amRρ(Sa10,,Sam0)Ta1,,amR¬ρ(Sa10,,Sam0)T

ρ 在理论 Th N 中表示 R 当且仅当 ρN 中定义 R

一个关系在 T 中是可表示的,当且仅当存在一个公式,在 T 中表示该关系。

定理 33E 公式 ρCn AE 中表示关系 R 当且仅当

  1. ρAE 数字确定,且
  2. ρN 中定义 R

我们有必要比较一下可表示和可定义这两个概念。在这两个概念中,我们都是用公式来描述自然数之间的关系。对于可定义性,我们关心的是句子的解释是否是真的;而对于在 Cn AE 中可表示,我们关心的是句子是否能从公理推出。

大题考点:

  1. 可表示、可定义是怎么定义的?他们有什么区别?

笔者认为,“定义”意味着创造了新的概念,而“表示”并不创造新的概念。Cn AE 作为一个封闭的理论,无法在其中创造更多的概念,因此使用“表示”这一术语。结构 N 本身并不包含句子,因此用“定义”这一术语。

教材 §3.3.5 可表示函数

在很多情况下,使用函数要比用关系来得方便。设 f:NmN 是自然数上的 m 元函数,公式 φ 中只有 v1,,vm+1 是自由变元。我们称 φ(在 Cn AE 中)函数表示 f,当且仅当对于 N 中的每一 m 元组 a1,,am

AEvm+1[φ(Sa10,,Sam0,vm+1)vm+1=Sf(a1,,am)0]

大题考点:

  1. 可表示函数的定义

习题 1:证明:在结构 (N;,E) 中,我们能够定义加法关系 {m,n,m+n|m,nN}。进一步证明在此结构中 {0},序关系 <,后继关系 {n,S(n)|nN} 都是可定义的。(说明:如果把结构 (N;,E) 简化为 (N;E), 这个结果还能加强。在此处,乘法关系可以通过指数运算的一个法则: (da)b=dab 来定义)

本题的第二小问在中文版教材前置条件被翻译为“在结构 {0} 中”,这是完全错误的翻译!请以本题的翻译为准!

证明:在算数关系中,很容易使用对数将乘法转化为加法。例如 log(nm)=log(n)+log(m)。利用这一思路,定义加法关系为 {n,m,p|2En2Em=2Ep},其中 2=S20。至此我们完成了对加法的定义,在后续我们会使用加法。

在此结构中,定义 {0} 为:xx+0=x

定义序关系为 {n,m|x(x+xxn+x=m)}

在算数关系中,后继可以用 m=n+1 表示,只要构造 x=1 即可。

定义后继关系为 {n,m|x(x+xxyz(y+yyz+zzy+zx)n+x=m)}

Q.E.D.

习题 2(不考):证明定理 33C, 即(在 N 中)真的无量词句子都是 AE 的定理。

证明:

首先,令 τ 是一个原子句子。那么,τ=t<uτ=t=u,其中 tu 是不含变量的项。根据引理 33B,存在 mn 使得 AEt=Sm0AEu=Sn0。进一步地,AESm0=Sn0 当且仅当 m=n,而 AESm0Sn0 当且仅当 mn(根据 S1 和 S2),并且,利用这一点,根据引理 33A,AESm0<Sn0 当且仅当 m<n,而 AESm0not<Sn0 当且仅当 mn。利用这些事实,我们可以证明 AEt<u 当且仅当 m<n,而 AE¬t<u 当且仅当 mn,并且 AEt=u 当且仅当 m=n,而 AE¬t=u 当且仅当 mn。例如,对于 m<nAExyz(x=yx<zy<z)AExyz(x=yz<xz<y)(演绎公理组 6,DA6),并且利用 DA2,我们可以推导出 AESm0=tSm0<Sn0t<Sn0AESn0=ut<Sn0t<u,并且类似地对于 AE¬u=tAE¬u<t

其次,令 τ 是一个形式为 ¬τ1τ2τ3 的句子,并且在 A 中为真,其中 τi 是使得 AEτi 当且仅当 τiA 中为真,而 AE¬τi 当且仅当 τiA 中为假。我们证明同样的结论也适用于 τ。确实,如果 τA 中为真,那么分别地,τ1A 中为假,而 τ2A 中为假或 τ3A 中为真,这意味着 AE¬τ1,并且 AE¬τ2τ3,即 AEτ;否则,τ1A 中为真,而 τ2A 中为真,τ3A 中为假,这意味着 AE¬¬τ1,并且 AE¬(¬τ2τ3),即 AE¬τ

Q.E.D.

习题 5(不考):证明:序列数字的集合是可表示的(编目 10)。

证明:序列数的集合定义为 \mathcal{S} = \set b \mid \forall x (x \leq b \rightarrow x \in \mathcal{P} \rightarrow < x, b > \in \mathcal{D} \rightarrow \forall y (y < x \rightarrow y \in \mathcal{P} \rightarrow < y, b > \in \mathcal{D}) },其中 P 是素数的集合,而 D 是可整除关系。换句话说,如果某个素数 x 能整除 $b $,那么所有小于 x 的素数 y 也能整除 $b $。特别地,这在 b=1=b=2=0 时是显然成立的。通过目录项 0、3、4 和 5,我们得出结论 S 是可表示的。

Q.E.D.

习题 6(不考):3 是序列数字吗?lh3 等于多少?求出 (13)61(36)

3=2031 是不是一个序列数,因为 p1=3 能整除 3,但 p0=2 不能整除 3。然而,形式上,我们仍然可以计算问题中的公式。

首先,形式上,lhb 定义为最小的 nN,使得要么 $b = 0 $,要么 pn,bD,其中 D 是可整除关系。在我们的例子中,$ \langle p_0, 3 \rangle \notin \mathcal{D}$,因此 lh3=0

其次,形式上,(b)c 定义为最小的 nN,使得要么 $b = 0 $,要么 pcn+2,bD。在我们的例子中,(3)c=0 对所有 cN(包括 c=1 时 $p_1 = 3 $)。

最后,ab=ai<lhbpi+lha(b)i+1 对所有自然数也定义。特别地,由于 lh1=01b=i<lhbpi(b)i+1,这仅仅是能整除 b 的最大序列数。因此,13=1 和 $(1 _ 3) _ 6 = 6 6 = \langle 0, 0 \rangle$ 是一个序列数)。进一步,$3 * 6 = 3 \cdot \prod_{i < 2} p_i^{(6)_i + 1} = 3 \cdot 6 = 18 = 2^1 \cdot 3^2 = \langle 0, 1 \rangle $。因此,1(36)=18

习题 10:设 R 是可表示的关系,$ g$ 和 h 是可表示的函数。证明:$ f$ 是可表示的,其中

f(a¯)={g(a¯)若 a¯R,h(a¯)若 a¯R.

证明:函数 f 可以表示为组合(定理 33L)d(g(a¯),h(a¯),KR(a¯)),其中 g,h,KR(目录项 1),且 d(x,y,z)=xz+y(1z) 是可表示的。

Q.E.D.

教材 §3.4 语法的算数化

本节完成了对哥德尔数的具体定义,这意味着所有的公式都可以用自然数来表示。

如表 3-1,函数 h 把每个左边的整数指派给右边的符号。例如 h()=0,h(0)=2,h(vi)=9+2i

对于一个语言的表达式 ε=(s0sm),定义其哥德尔数为 (ε)

(s0sm)=h(s0),,h(sn)

比如,对 N 的语言使用上述的函数 h,我们可以得到

(v3v3=0)=((¬v3(¬=v30)))=1,5,0,15,1,5,9,15,2,3,3=22365171611213617101916233294314

对于一个推理(序列),α1,,αn,做如下指派:

G(α1,,αn)=α1,,αn

存在可表示函数 Sb,使得对于一个项或公式 α,变元 x,及项 t

Sb(α,x,t)=αtx

存在一个可表示关系 Fr,使得对于一个项或公式 α,及变元 x

α,xFrx 在 α 中自由出现

性质:

a,bFrSb(a,b,0)a

教材 §3.5 不完全性和不可判定性

不动点引理:对于只含有自由变元 v1 的公式 β ,我们可以找到句子 σ 使得

AE[σβ(Sσ0)].

我们可以认为 σ 间接地表达 “β 是真的我。” 当然,实际上 σ 什么也没说,它只是一些符号串而已。甚至当我们在 N 中把它翻译成自然语言时,它也仅仅是关于一些数字和它们的后继及运算结果的句子。正是因为我们把数字和表达式联系起来,我们才能把 σ 看作一个公式。

大题考点:

  1. TODO:不动点定理的证明思路?

教材 §3.5.2 弱可表示性

我们考虑递归可枚举集 Q,其中对于递归 R

aQba,bR

我们知道存在公式 ρCn AE 中表示 R 。因此,公式 v2ρN 中定义了 Q。这个公式在 Cn AE 中不能表示 Q,除非 Q 是递归的。但我们说这个公式几乎可以表示 Q

aQa,bR对于某个 bAEρ(Sa0,Sb0)对于某个 bAEv2ρ(Sa0,v2)aQa,bR对于所有的 bAE¬ρ(Sa0,Sb0)对于所有的 bAEnotv2ρ(Sa0,v2)

大题考点:

  1. TODO:弱可表示性的定义

教材 §3.6 递归函数

另有:习题 3.6 1;2(a);3;4;8

习题 1:如下定义函数 fg

f(n)={0如果哥德巴赫猜想是对的1其他情况g(n)={0如果在 π 的十进制小数展开式中至少连续出现 n 个 71其他情况

那么,f 是递归的吗?g 是递归的吗?(哥德巴赫猜想是指任意一个比 2 大的偶数都可以写成两个素数的和。在这本书的第一版使用的是 Fermat 最终定理。)

函数 f 不是递归的,因为 f 是常函数。

函数 g 是递归可枚举函数,不是递归函数。

习题 2:定义对角线函数 d(a)=[a]1(a)+1

(a)证明:d 是部分递归函数

这题不会,跳过。

习题 3:(a)证明:任意部分递归函数的值域都是递归可枚举的。

(b)证明:严格递增的全递归函数 f(即, f(n)<f(n+1))的值域是递归的。

(c)证明:递增全递归函数 f(即, f(n)f(n+1))的值域是递归的。

这道题考前重点讲解。

证明:听了,但没听懂。真不会了,考到就认命吧。

教材 §3.6.2 部分递归函数

范式定理(Kleene,1943)

(a)在 e,a1,,am 的值是 [e]m(a1,,am)(m+1) 元部分函数是部分递归函数)

(b)对于每个 e0[e]mm 元部分递归函数

(c)对于任意 m 元部分递归函数, 都存在某个 e, 使得这个部分递归函数等于 [e]m

在范式定理中,符号 e,a,k,Tm, 和 k 的含义如下:

  1. e: 这是递归函数的索引或编码,通常对应于一个程序或计算过程的标识符。它表示一个递归函数或其对应的程序。
  2. a: 这是输入向量,通常表示为 a1,a2,,am,是递归函数的输入参数。
  3. k: 这是一个编码,表示从公式 φ 推导出结果的推理过程的哥德尔数。它包含了推理过程和结果的信息。
  4. Tm: 这是一个 (m+2) 元关系,包含 e,a1,,am,k。它定义了计算步骤,表示 e、输入 a 和编码 k 之间的关系,其中 k 编码了从公式 φ 推导出结果的推理过程。
  5. k: 这是在 k 之前的某个值,用于确保 k 是满足条件的最小值。在最小化操作 μk 中,k 代表比 k 更小的值,用于检查是否有更小的 k 满足条件。

范式定理的核心思想是,对于任意递归函数 f,存在一个索引 e,使得 f(a1,,am) 可以表示为 U(μk(e,a1,,am,k)Tm),其中 U(k) 提取编码 k 中的结果部分。通过这些符号和关系,定理描述了递归函数的计算过程和其通用性。

大题考点:

  1. 解释范式定理中符号 e,a,k,Tm, 和 k的意思

教材 §3.7 第二不完全性定理

哥德尔第二不完全性定理(1931) 设 T 是一个足够强的递归可公理化理论,则 TConsT 当且仅当 T 是不和谐的。

证明思路:

哥德尔第二不完备定理表明,如果一个足够强大的公理系统是相容的,那么它不能证明它自身的相容性。以下是该定理的证明思路,分为几个关键步骤:

可证明性公式:首先,我们定义一个公式 PrbT(x),它表示“ x 在系统 T 中是可证明的”。这个公式通过哥德尔编码来表示公式和证明的过程。

相容性公式:接下来,我们定义系统的相容性公式 ConsT,它表示“系统 T 是相容的”,即不存在可证明的矛盾。具体来说,ConsT 可以表示为 ¬PrbT(0=1),即系统 T 不能证明 0=1

不动点引理:利用不动点引理,我们可以构造一个自指命题 σ,使得 σ 等价于 $ \neg \text{Prb}_T(\sigma)$。这个命题 σ 可以被理解为“我不可证明”。

假设系统证明相容性:假设系统 T 能够证明其相容性,即 TConsT。根据 σ 的定义,我们有:

T(σ¬PrbT(σ))

利用反射性质:通过反射性质,我们可以证明如果 Tσ,那么 TPrbT(σ)。然而,根据 σ 的定义,这会导致矛盾,因为 T 不能同时证明 σ¬PrbT(σ)

Löb 定理的应用:Löb 定理指出,如果 T 证明“PrbT(τ)τ”,那么 T 证明 τ。在这个情境下,如果 T 证明 ConsT,那么根据 Löb 定理,T 会证明 ¬PrbT(0=1),即 ConsT 本身。

结论:如果 T 是相容的,它不能证明 ConsT,因为如果 T 能证明 ConsT,那么根据上述推理,T 会变得不相容。因此,哥德尔第二不完备定理成立:如果 T 是相容的,它不能证明自身的相容性。

总结:哥德尔第二不完备定理的证明思路是通过构造自指命题 σ,利用可证明性和相容性的表达,结合反射性质和 Löb 定理,最终得出系统无法证明自身相容性的结论。

一个基于哥德尔第一不完备定理的更简单的证明思路:

哥德尔第一不完备定理可以简化为对“若公理体系具有一致性,则构造的自指命题 σ 为真”这一命题的否定。

哥德尔第二不完备定理可以简化为对“从公理可推出公理体系具有一致性”这一命题的否定。

若“从公理可推出公理体系具有一致性”这一命题成立,则有从公理出发可推出自指命题 σ 为真,这本身就是一个推导出(证明出)σ 的过程,与第一不完备定理相悖。因此“从公理可推出公理体系具有一致性”这一命题为假。

大题考点:

  1. TODO:简叙哥德尔第二不完全性定理(P200)的证明思路