前言
之前学校教离散数学的时候把数理逻辑这一章节给略过了, 于是我自己翻了一下, 发现这是一个颇有意思的领域, 但是完全可以想象计算机系的离散数学里教的数理逻辑是多么的无聊, 如果希望认真了解数理逻辑这门学问的话可以避雷西交的离散数学了, 之后我就自己找一些其他学校的教材来读, 不出意料的读到了另外两个学校的垃圾书, 分别是 fdu出版设的《数理逻辑-证明及其限度》以及 thu出版社的《数理逻辑与集合论》.
首先我来细数一下这三本书的罪过:
泥交的书和thu的书完全是同一类型的, 当然后者更丰富一点, 但是已经失去了数理逻辑的学科骨架了, 这两个书单纯就是告诉你形式推理的规则是什么, 而关于元与形式的思想是一点不讲, 不知作者是hyw.
fdu的书倒是弥补了上面两本书的缺点, 它着重的讲了关于形式推理的定理(元定理), 甚至能够在思想上给予一些启迪. 不得不说它的基础部分是写的很好的, 但是到了后面递归论和第二不完备性定理的时候作者数学基础之薄弱就可以看出来了, 出现非常多用词模糊, 语言随意的问题, 包括但不限于在定理中使用一些没有被定义清楚的词汇(更多的时候是直接就用了一个词语, 而完全不定义它), 到最后甚至需要读者自己去猜测一个名词是什么意思, 我认为这是作为数学教材及其不能接受的地方; 同系列的书《集合论 - 对无穷概念的探索》也有类似问题, 甚至更甚; 不过念在作者是哲学系出身, 数学水平及其有限, 也就呵呵了之算了.
之后我在zhihu上了解到了一些好的书本, 于是最终决定看 CSAM 的《Lectures in Logic and Set Theory. Volume 1 - Mathematical Logic》, 不得不说这本鬼佬写的书的质量就是好过我看过的那几本垃圾书 (其实冯琦的书也很不错, 但是和其他的一些代数学问题搅在一起了, 所以整个书的体量特别大, 等我水平高一些了再拜读吧) . 本文就是记录一下读完各个章节收获的一些idea吧.
内容
Chapter 1 - Basic Logic
Chapter 1; Section 1,2,3,4,5
前五章习题参见link
前五个章节讲的是基础的内容, 其中前四章是关于形式推理的定义以及一些应用, 可以理解为语法部分, 第五章是语义部分, 并且主要讲了几个重要的定理
若 $\Sigma\vdash_L A$ , 则 $\Sigma\vDash_L A$ .
若 $\Sigma$ 一致, 则存在 $L$ 上的结构 $\cal M$ 使得 $\mathcal M\vDash_L\Sigma$ .
若 $\Sigma\vDash_L A$ , 则 $\Sigma\vdash_L A$ .
若 $\Sigma$ 的任意有穷子集都是可满足的, 那么 $\Sigma$ 是可满足的.
可数语言上的一致公式集存在可数模型.
设语言 $L$ 的基数为 $\frak k$ , 那么若 $L$ 上的公式集 $\Sigma$ 存在无穷模型, 那么对于任意 $\frak n\ge k$ , 存在基数为 $\frak n$ 的 $\Sigma$ 的模型 $\cal M$ .
可靠性定理是比较 trivial 的, 我们直接递归地证明逻辑公理和导出规则都不破坏正确性即可.
而可靠性定理的逆命题 Consistency Thm 的证明就比较 nontrivial , 假定语言 $L$ 的基数为 $\frak k$ 以及我们要讨论的一致公式集 $\Sigma$ , 那么我们向 $L$ 中添加 $\frak k$ 个新的常数符号得到语言 $L'$ , 之后我们用一条长度为 $\frak k$ 的序数链条遍历全体 $L'$ 上的语句与存在性语句, 之后交替地遍历它们, 在对于普通的语句, 在不破坏一致性的前提下将语句逐条添加进入公式集 $\Sigma$ , 对于存在性语句, 在不破坏一致性的前提下向其添加 Henkin witness , 之后得到了一个极大的公式集 $\frak T$ , 并且可以证明它是一致完备的, 之后再去掉本质相同的常数赋值后, 可以证明这不会破坏一致完备性, 于是之后我们就可以从中读取每个谓词和函数的信息了, 由此就可以构造出一个模型. 一个可能的疑惑是为什么只需要枚举语句, 这是因为在我们设计的系统中每个公式都等价于它的全称概括. 具体的证明可以参考这里: 可数语言情形的证明 .
当然从一致性定理出发可以平凡地得到完全性和紧致性定理.
如果我们往模型论的方向来拓展我们的结果, 我们可以得到上行的 Löwenheim-Skolem Thm , 具体的证明技术是, 对于 $L$ 上的一致公式集 $\Gamma$ , 我们向 $L$ 中添加 $\frak n$ 个新常数符号 $c_\alpha(\alpha<{\frak n})$ 得到语言 $L({\frak n})$ , 并且令 $\overline{\Gamma}:=\Gamma\cup\{\neg c_\alpha=c_\beta:\alpha<\beta<{\frak n}\}$ , 由于 $\Gamma$ 存在无穷模型, 故对于 $\overline\Gamma$ 的每个有穷子集, 我们都可以恰当地安排常数的赋值从而满足它, 由紧致性定理可得 $\overline\Gamma$ 一致, 故它可满足, 并且用 Gödel 给出的构造方法得到的模型的基数是不多于 $\frak n$ 的, 而显然这个模型至少包含 $\frak n$ 个元素, 故这个模型的基数恰好是 $\frak n$ .
一些题外话:
本章的内容旨在刻画我们创造的形式系统的能力, 在此之前我们要明确内与外的概念, 当然也借此回顾数理逻辑这门学科的历史.
早在古希腊的年代, Euclid 一行贤者就开创了最早的推理形式, 几何原本便是其代表之作, 直到十七世纪末, 数学家们的工作就是通过推理来发现"定理". 但是从现代的角度出发, 定理作为推理的结果, 那么推理的起点在哪里呢? 这个问题其实在现代以前都没有被认真对待过, 当然这是有许多历史和社会的原因在里面的, 其实在这漫长的一段时间里研究这一问题的多是哲学领域的先贤而非数学家, 在这一方面的鲜明成果的是康德, 休谟等一行人创造的不可知论. 回到这个问题上来, 由于所有的推理都是在有穷步内完成的, 所以一定有不证自明的一些事实作为我们推理的起点, 我们称之为公理. 到了近现代, 数学家发现不同地区不同语言习惯的数学家们经常吵架, 而根本原因只是因为语言不通而已, 这已经极大地破坏数学发展的效率了, 所以数学家们需要一种严谨的, 通用的语言来重新描述大家的数学过程, 为此, 形式推理应运而生. 这个形式推理就是日后数理逻辑的雏形了, 它包含一系列公理, 以及唯一的推理规则"形式演绎". 之后的数学家们的工作便从自然语言逐步转化到形式语言中, 这一方面取得显著成果的是 Hilbert , 它的主要工作之一是公理化了几何学, 之后人们发现这个形式推理真的太好用了, 于是作为当时数学的皇帝, Hilbert 就提出了它伟大的形式主义计划, 旨在证明我们的形式推理是万全的! 当然众所周知它失败了, 彼时年轻的逻辑学家 Gödel 通过自指涉得到的不完全性定理说明了任何足够强的(递归的)形式系统都有不可在系统内证明的结论. 这不久后便吸引了大量的数学家开始用数学(为了避免自指我更愿意称之为形而上学)的方式来研究数学推理本身, 这便是我们的数理逻辑了.
通过语义学部分我们可以了解到数理逻辑的核心宗旨大概就是用形式的系统来描述和模拟一些在我们脑海里的东西, 其中公式集的模型, 语言的结构都是在我们脑海中的, 而系统里头应用导出规则等等得到的形式公式就是系统里模拟的过程与结果, 于是这就划清了一条界限, 在系统内运行模拟的内容是内部的, 在我们脑海(或者说意识宇宙)里的东西是外部的, 那么迄今为之大部分数学家都是在自己领域的那个系统里头用内部的语言来尝试捕获外部的意识宇宙里的东西.
而本章的结果则是部分地刻画了系统的能力. 其中 Soundness 说的是"我们在系统内部不会推出外部的错误的结论", 而 Completeness 说的则是"如果外部中所有的模型都承认一个事实, 那么一定有一个本质的原因的, 即在内部这个事实的形式表述能被推出", 而 Soundness-Completeness 合在一起表明了语义和语法是等价的. 然而与 Soundness 和 Completeness 的形式截然不同的另一个定理 Compactness 及其延伸的思想方法却更深刻地反映着我们推理的一个特性"有穷", 它的根本原因是我们的推理步骤, 每个定理的长度都是有穷的, 这在某种意义上暗示了我们对无穷的认识能力总是有限界的, 并且这种限界是本源的, 结构性的, 不可避免的. 这一点会在之后的递归论和第一不完全性的章节得到更鲜明的验证.
Chapter 1; Section 6
Welcome to the world of model theory! 欢迎来到模型论的世界!
本章习题参见link
本章主要介绍了模型论的基础概念以及一些方法. 一部分数理逻辑学家把注意力放到了外部的世界中, 研究不同的模型之间的关系, 我们定义出了几个模型间的关系:
- 模型的嵌入,等价与子模型
- 模型的初等等价与初等嵌入
并且我们还给出了若干个等价的对嵌入(初等嵌入)的描述. 并得到了第一个主要的定理
设基数 $\frak m$ , 语言 $L$ 及其上的一个结构 ${\cal M}:=(M,a)$ 以及的一个子集 $X$ , 若 $|X|,|L|\le{\frak m}\le|M|$ , 则存在 $L$ 上的基数为 $\frak m$ 的结构 $\mathcal K:=(K,b)$ 满足 $X\subseteq K$ 并且 $\cal K\prec M$ .
证明的技术是利用选择公理来构造一个导出规则 $\scr Q$ , 其中每个公式都指定了一个导出对象, 之后取出某个包含 $X$ 的大小恰好为 $\frak m$ 的 $M$ 的子集 $K'$ 时候取 $K'$ 对 $\scr Q$ 的闭包 $\overline{K'}$ , 则把 $\cal M$ 中的每个解释都限制在 $\overline{K'}$ 上即可得到我们想要的模型.
在得到上述的初等的结果之后, 为方便计, 我们引入了图语言(Language of Diagrams). 并进一步导出了在图语言中嵌入与初等嵌入的等价描述, 也就是 I.6.23 Main Diagram Lemma . 有了这些结果我们可以得到第二个版本的上行洛文海姆-斯科伦定理.
设 $\frak A$ 是语言 $L$ 的某个无穷结构, 那么对于任意基数 ${\frak n}\ge \max\{|{\frak A}|,|L|\}$ , 总存在大小为 $\frak n$ 的结构 $\frak B$ 使得 $\frak A\prec\frak B$ .
证明的技术与 Ver. 1 类似, 为了维持初等嵌入, 我们在扩充语言的常数符号后取公式集 $\mathcal Q:=\text{Th}({\frak A_{|\frak A|}})\cup\{\neg c_{\alpha}=c_{\beta}:\alpha<\beta<\frak n\}$ , 由 Compactness 可得 $\cal Q$ 是一致的. 之后我们取 $\cal Q$ 的模型, 并将其限制在语言 $L(\mathfrak A)$ 与 $L$ 上, 就可以得到第一组初等嵌入, 在利用下行定理可以把模型调整到目标的基数.
最后本章向我们展示了两个模型论方法的应用: 归纳理论的等价刻画与非标准分析
一个理论 $\cal T$ 是归纳的当且仅当每个递增的 $\cal T$ 的模型链的并都是 $\cal T$ 的模型
难点在于必要性部分, 证明的技术是利用 $\text{Th}$ 和 $D_\forall$ 算符来构造一个递增的交替模型链, 并且证明这样的链的并是 $\cal T$ 的模型.
至于非标准分析, 我们通过模型论的方法, 对于某个充分大的基数 $\frak m$ , 给出了一个与标准实分析模型初等等价的模型 $^*\R$ , 不过不同于实分析中实数的连续性,完备性, 我们强行在实数之间插入无穷小量, 得到了一个更大更怪异的结构, 称之为超实数, 而这个模型也被称为非标准的模型. 而在这个模型下, Leibniz 最初的关于无穷小量的想法有了踏实的基础, 许多在实分析中的定理被重新用非标准模型的语言来描述, 它们更加简洁, 同时也更符合直觉.
这似乎也提示我们, 许多理论的非标准模型的存在性是一个值的思考的问题.
Chapter 1; Section 7
补充章节, 没什么好说的.
Chapter 1; Section 8
Welcome to the world of computability! 欢迎来到递归论的世界!
本章习题参见link
这大概是本书前半部分最精彩的章节, 事实上, 递归论提供了重新审视数理逻辑这一门学科的视角: 去考虑一个集合的复杂程度.
首先给出可计算函数/谓词的刻画
- 初始函数/*
- 原始递归函数/原始递归集
- 递归函数/递归集
- 部分递归函数/r.e.集(半递归集)
一个重要的工作是编码, 我们可以把有穷序列 $\langle a_1,...,a_n\rangle$ 编码成 $2^{a_1+1}3^{a_2+1}...p_n^{a_n+1}$ . 完成这一工作的编码函数以及它的解码函数都是原始递归的.
有了编码, 我们就可以把复杂但是规模有穷的东西全部都放进自然数里讨论了, 包括函数本身. 由于可计算函数是归纳构造出来的, 所以我们可以把归纳的模式写成编码, 之后我们就可以得到部分递归函数的编号集合 $\Phi$ 了, 不过值得注意的是每个函数都有无穷个编号, 而且一个很有意思的事实是, 尽管 $\Phi$ 是原始递归的, 但是若 $f$ 是部分递归函数, 那么集合 $\Phi[f]:=\{i\in\Phi:\{i\}=f\}$ 的复杂程度远超过我们想象, 它一定不是递归的(参见Rice’s Thm), 而且很可能甚至不是半递归的. 回到 $\Phi$ 上面, 既然我们可以编码和解码函数的构造, 那么我们就也可以编码一个函数在某个输入上的计算过程, 于是我们有了Kleene’s T Predicate , 它的功能是判断数码 $z$ 是否编码了函数 $i$ 在输入 $x$ 上的计算序列, 并且它是原始递归的, 之后可以配合 $\mu$-operator 把它组装成一台通用图灵机, 输入函数的编号以及参数就可以模拟这个函数并尝试输出. 当然如果 $x\notin\Phi$ 那么就会一直运行下去不停机.
而之后我们会迎来第一个非平凡的问题: 函数 $f$ 在输入 $x$ 上停机吗? 换句话说, 我们想知道停机集 $K:=\{x\in\N:\{x\}(x)\downarrow\}$ 以及它的完全集 $K_0:=\{(x,y)\in\N^2:\{x\}(y)\downarrow\}$ 的复杂程度如何. Turing 一行人的工作回答了这个问题
$K$ 是半递归的, 但不是递归的.
证明的方法有许多, 本书给出的是利用对角化方法来说明 $\overline K:=\N-K$ 不是半递归的. 这似乎给了我们一种暗示: 当一个程序(可计算函数)在某个值上不会停机的时候, 我们没办法再利用某个其他的程序来判断它会不会停机, 这种不停机的性质是一种本源性的, 结构性的限制, 我们依赖原有的方法是无法突破的; 换一种刻意玄乎一点的说法是, 存在更复杂的自然数的子集, 并且这些子集隐藏在函数不停机的输入的阴影中. 它直接指向了一个观点: 机械化的方法是无法全面认识宇宙的 .
之后我们还有两个神秘的定理
存在原始递归的 $\lambda xy.\sigma(x,y)$ 使得对于任意的 $i,c$ 有 $\{\sigma(i,c)\}=\lambda x.\{i\}(c,x)$ .
这个定理说的是存在一种构造代码的范式, 可以把固定的参数编码进范式本身, 将“程序参数”静态地编译进新的程序索引, 准确来说, 它是一种能够把"元层次操作"转化进"对象层次"的强大工具. 习题中我们会遇到很多需要说明"元层次的操作亦可以在对象层次进行"的地方, 这个时候可以尝试使用 S-m-n 定理.
对于 $i\in\Phi$ 假定 $\{i\}$ 是 $n+1$ 元函数, 那么存在 $e\in\Phi$ 使得 $\{e\}=\lambda\vec x_n.\{i\}(e,\vec x_n)$ .
这个定理在绝大多数时候都是用来表明递归地定义函数是安全的, 比如说在 xcpc 中常见的 dfs 爆搜, 这种递归定义函数不会逾越出部分递归函数的范畴. 但是有些时候它却可以拿来构造自我指涉, 这需要足够聪明的脑瓜, 事实上我也解释不清楚 $e$ 究竟是一个什么东西.
最后就是本章的重头戏: $\bf{\frak A}rithmetic\ Hierarchy$ - 算术分层
令 $\Sigma_0=\Pi_0=\Delta_0:=\frak R^*$ , 之后通过添加 ($\exists x$),($\forall x$) 量词前缀来堆叠产生的算术分层, Kleene 的工作指出这样的分层是有效的, 即这样的分层不会坍塌.
$\Sigma_n\subsetneq \Delta_{n+1}\subsetneq\Sigma_{n+1},\Pi_{n}\subsetneq\Delta_{n+1}\subsetneq\Pi_{n+1}$ .
之后我们记 $\Delta:=\bigcup_{n\in\N}\Sigma_n\cup\Pi_n$ , $\Delta$ 便是算术集了, 在下一章会指出, 为什么它得到这个名字.
一些题外话
虽然本章没有介绍递归论方面现代的方法以及方向, 比如高型递归论,算术力迫,优先方法等, 但是不可否认的是递归论为我们认识数理逻辑乃至人类的认知能力开创了一个很新的角度, 去评价一个集合的复杂程度. 这种复杂程度的"复杂"是一个比较抽象的概念, 相比之下人类能够通过计算能够解决的问题只有 $\Sigma_1$ , 这里便是算法的极限了, 到后面的更高层次的算术复杂度和图灵跳跃已经渐渐脱离了现实, 除非哪天人类能在宇宙中发现某个能够读写实无穷过程的物体, 不然这些更高层次的分析都是空中楼阁. 当然本章的也没有过多地去介绍算术分层, 但是我认为这是最具有启发性的一个部分, 在下一章的不可完备化中这会对我们的观念产生一个很大的冲击.
不过说实话这一章的习题构造性的内容太多了, 可能这就是递归论的工作范式吧.
Chapter 1; Section 9
$\frak A$rithmetic, Definability, Undefinability and Incompletableness. 算术性,可定义性,不可定义性与不可完备化.
本章习题参见link
回顾一下人类意识宇宙中万物的起点是什么? 自然数! 或许我们该用数理逻辑的方法重新审视一下我们的自然数了.首先我们回顾一下自然数的建立中最基础的符号 $+,\times,<$ , 本章的工作是将一些元层面的算术操作(比如归纳,原始递归等)拉回到对象层面, 为此我们不能使用原始递归, 因而需要通过这些基础的符号重新设计出编码与解码的函数, 来模拟元层面的操作, 为此我们先借由这些基础的符号建立起最基础的一些谓词, 它们是 $\frak CA$ . 显而易见的是 $\frak CA\subseteq PR^*$ , 并且我们很快通过一些论证得到了投影定理
若 $P(x)\in{\frak PR^*}$ , 则存在 $Q(z,x)\in\frak CA$ 使得 $P(x)\leftrightarrow (\exists z)Q(z,x)$ .
于是我们把 $\frak A$rithmetic Hierarchy 中的 $\Delta_0$ 层次替换为 $\frak CA$ 不会对整个分层产生任何影响, 令 $L_{\frak N}$ 为最小的算术语言(非逻辑符号只包含 $\rm S,+,\times,<,0$), 则标准模型 $\frak N$ 显然是 $L_{\frak N}$ 上的一个结构, 在给出了语法算术化(Gödel编码)的具体方案后, 就可以得到非常重要的两个定理
设 $P\subseteq\N^k$ , 则 $P\in\Delta$ 当且仅当在语言 $L_\frak N$ 上 $P$ 是 $\frak N$ 中可定义的.
当然, 算术集 $\Delta$ 的名称也就有了意义: 能够通过算术来表达的关系.
真理的编码构成的集合 $\bf T$ 不是算术集.
具体的证明参考link , 证明的技术是考虑利用反证法来使算术分层坍塌掉. 这一个定理告诉我们, 真理集合的复杂度远在算术范畴之上, 我们无法用算术的方法来得到算术的真相的.
之后就是 Gödel 与 Church 的工作, 它们的工作重心转向了算术理论, 揭示了完全性与递归性的矛盾. 不过与它们原始的证明版本不同, 本书给出的多是 Sheonfield 从递归论的视角出发对于这些证明论的工作的重写.
我们首先要做的是尝试公理化算术, 即给出一个 $L_{\frak N}$ 上的公式集作为公理来尝试描述我们的初等数论, 这里我们并不使用 $\bf PA$ , 而是采用一个更弱的 $\bf Q$ (国内的教材普遍喜欢叫 $\bf Q$ , 鬼佬的教材普遍喜欢叫 $\bf ROB$) , 之后结合推理的有穷性我们能够得到几个结论:
若公理集 $\Gamma$ 的编码是 r.e. 的, 那么 $\rm Thm_{\Gamma}$ 的编码也是 r.e. 的.
在这一视角下, 我们可以平凡地得到 Gödel 第一不完全性定理的语义版本.
对于任意 $\bf Q'$ 满足 $\bf Q\subseteq Q'$ , 只要 $\bf Q'\subseteq{\rm Th\ \frak N}$ 且 $\bf Q'$ 的编码集是递归的, 那么 ${\rm Thm_{\bf Q'}}\subsetneq{\rm Th\ \frak N}$ .
由可靠性我们可以得到 ${\rm Thm_{\bf Q'}}\subseteq{\rm Th\ \frak N}$ , 而不等号则是由 Tarski Thm 给出的, 因为前者的复杂程度仅为 r.e. 而后者则远在算术范畴之上. 当然换成更加广为人知的写法是, 存在 $\sigma$ 使得 $\bf Q'\not\vdash\sigma$ 且 $\bf Q'\not\vdash\neg\sigma$ .
之后本书还提供了一个通过精妙的技巧构造出来的原始递归函数 $\lambda m.\scr g$ , 它能够机械化地导出不可证的公式, 即, 对于任意的 $m\in\N$ , 只要 $W_m$ 编码了一个公式集 $\Gamma$ 满足 ${\bf Q}\subseteq\Gamma\subseteq\rm Th\ \frak N$ , 那么 ${\scr g}(m)$ 编码了一个在 $\rm Th\ \frak N$ 中而不在 $\rm Thm_{\Gamma}$ 中的公式.
除此以外, 我们还见识到了 $\bf Q$ 的弱, 比如 $\bf Q$ 是无法证明加法交换律的
${\bf Q}\not\vdash \forall x\forall y(x+y=y+x)$ .
这是因为 $\bf Q$ 存在非标准模型, 在非标准模型中加法不具有交换律.
上述的观点启发当时的人们关于非标准模型存在的一些问题, 那么何以为"标准"与"非标准"呢? 我们可以适当地去考虑一些不在 $\rm Th\ \frak N$ 中出现的东西, 在这个方向上 Church 的工作指出
对于任意一致的 $\Gamma$ 满足 ${\bf Q}\subseteq\Gamma$ , 那么 $\rm Thm_{\Gamma}$ 不是递归集.
证明的技术是把一个 r.e. 而非递归的集合 $S$ 纳入到 $\rm Thm_{\Gamma}$ 中, 而 $\rm Thm_\Gamma$ 的辨别能力是严格强于非递归的, 因而如果 $\rm Thm_\Gamma$ 是递归集那么这个 $S$ 也是递归的. 通过类似的技术我们可以得到 Gödel 第一不完全性定理的语法版本.
每个一致递归的公式集 $\Gamma$ 不是完全的.
换句话说, 对于每个 $\Gamma$ , 总是存在公式 $\sigma$ 使得 $\Gamma\not\vdash\sigma$ 且 $\Gamma\not\vdash\neg\sigma$ .
最后做一个总结, 本章的内容就是从递归论出发重新审视一些可证性的结果, 这里主要的思想方法是去考虑集合的复杂程度
- 满足完全性的集合的复杂程度远超过 r.e.
- 真理集 $\bf T$ 的复杂程度远在算术范畴之上
- 从 r.e. 集或是递归集出发得到的理论的复杂程度不超过 r.e.
一点题外话
结合上一章的内容我们就发现了一个悲观的事实, 如果我们希望得到自然数的全部真理那么我们就不能从递归的角度出发, 但是遗憾的是人类只发展了有穷年(虽然很长但是仍然有穷), 以后大概率也只会存在有穷长度的时间, 那么我们怎么可能去得到关于无穷的信息呢? 有穷仿佛是这个宇宙为我们设下的结构性的天堑, 只要我们还承认逻辑, 那么就永远都无法迈出这个界限, 任何尝试突破这个界限的行为都会最终被逻辑本身反弹回来. 这种感觉就像天体物理学家们知道可观测宇宙外还有更大的不可观测宇宙一样, 并且后者的体积可能是前者的 $10^{40}$ 倍, 我们太渺小了…
Chapter 2 - The Second Incompleteness Theorem
要回去打 xcpc 了, 数理逻辑, 后会有期吧. 鸽~