哥德尔不完备定理证明

0. 哥德尔不完备定理

每个数学系统都存在一些语句永远无法被证明.


1. 哥德尔数

\(\hspace{0.1cm}\)符号\(\hspace{0.1cm}\) \(\hspace{0.1cm}\)哥德尔数\(\hspace{0.1cm}\) \(\hspace{0.1cm}\)含义\(\hspace{0.1cm}\)
\(\sim\) \(1\)
\(\vee\) \(2\)
\(\supset\) \(3\) 如果 \(\cdots\)\(\cdots\)
\(\exists\) \(4\) 存在
\(=\) \(5\) 等于
\(0\) \(6\)
\(s\) \(7\) 后继
\((\) \(8\) 标点符号
\()\) \(9\) 标点符号
\(,\) \(10\) 标点符号
\(+\) \(11\)
\(\times\) \(12\)
\(x\) \(13\) 变量
\(y\) \(17\) 变量
\(z\) \(19\) 变量

比如说公式 \(0=0\)

它的每一位哥德尔数分别是:

\(6\hspace{0.2cm}5\hspace{0.2cm}6\) (作指数)

给这三位分别分配一个质数:

\(2\hspace{0.2cm}3\hspace{0.2cm}5\) (作底数)(当位数更多时以此类推)

所以公式 \(0=0\) 的哥德尔数是 \(2^6\times 3^5\times 5^6\),也就是 \(243000000\).

如果我们得知哥德尔数 \(243000000\)

那么我们可以对它进行唯一的分解质因数,得到 \(2^6\times 3^5\times 5^6\)

因此,一个公式只能对应一个哥德尔数,一个哥德尔数只能对应一个公式.


众所周知,数学证明可能需要多个公式组合在一起,

举一个十分简单的例子:

\(x=0\)

\(y=s0\)

\(y=sx\)

我们要先根据上述基础部分,得出这三个公式的哥德尔数,

\(x=0\hspace{0.5cm}\to\hspace{0.5cm}2^{13}\times 3^5\times 5^6\)

\(y=s0\hspace{0.5cm}\to\hspace{0.5cm}2^{17}\times 3^5\times 5^7\times 7^6\)

\(y=sx\hspace{0.5cm}\to\hspace{0.5cm}2^{17}\times 3^5\times 5^7\times 7^{13}\)

然后再给每个公式分配一个质数:\(2\hspace{0.2cm}3\hspace{0.2cm}5\).

所以,这段数学证明的哥德尔数是:

\(2^{2^{13}\times 3^5\times 5^6}\times 3^{2^{17}\times 3^5\times 5^7\times 7^6}\times 5^{2^{17}\times 3^5\times 5^7\times 7^{13}}\)

这是一个极大的数.


2. \(\textbf{sub(\textit{a},\textit{b},\textit{c})}\)

哥德尔的想法是,他可以用公式本身的哥德尔数代入到公式中,从而产生无穷无尽的麻烦.

我们可以考虑公式 \((\exists x)(x=sy)\),它的意思是“存在 \(x\),使得 \(x\)\(y\) 的后继”,简而言之就是“\(y\) 有后继”.

假设它的哥德尔数为 \(m\).

而现在,我们定义一个 \(\text{sub}\) 函数:

\(\text{sub}(a,b,c)\) 表示在一个哥德尔数为 \(a\) 的命题中,找到所有哥德尔数为 \(c\) 的符号,将其替换为 \(b\).

于是我们可以把刚刚的哥德尔数为 \(m\) 的公式做这样的操作:

\(\text{sub}(m,m,17)\) 表示把哥德尔数为 \(m\) 的公式中,哥德尔数为 \(17\) 的符号(就是 \(y\))替换为 \(m\).

也就是这段公式:

\((\exists x)(x=sm)\)

它表示“\(m\) 有后继”.

接下来,有了这些条件,我们的证明就要开始了.


3. 证明

我们先假设有这样一个命题:“哥德尔数是 \(\textbf{sub(\textit{y},\textit{y},17)}\) 的命题无法证明”.

它的哥德尔数为 \(n\).

然后,我们再来考虑这样一个命题:“哥德尔数是 \(\textbf{sub(\textit{n},\textit{n},17)}\) 的命题无法证明”.

那么什么是哥德尔数是 \(\textbf{sub(\textit{n},\textit{n},17)}\) 的命题呢?

我们根据 \(\text{sub}\) 函数的定义,找到哥德尔数是 \(n\) 的命题,它就是:

哥德尔数是 \(\textbf{sub(\textit{y},\textit{y},17)}\) 的命题无法证明.

然后,我们找到这个命题中哥德尔数为 \(17\) 的符号(就是 \(y\)).

哥德尔数是 \(\textbf{sub(\textit{\colorbox{red}{\colorbox{white}{y}}},\textit{\colorbox{red}{\colorbox{white}{y}}},17)}\) 的命题无法证明.

现在,将它们替换为 \(n\) 这个数字,也就是,这个命题变成了:

哥德尔数是 \(\textbf{sub(\textit{\colorbox{green}{\colorbox{white}{n}}},\textit{\colorbox{green}{\colorbox{white}{n}}},17)}\) 的命题无法证明.

于是,一个很神奇的事情就发生了:

\(\text{sub}(n,n,17)\) 代表的命题就是“哥德尔数是 \(\text{sub}(n,n,17)\) 的命题无法证明”

所以,这个命题说自己是无法证明的.


我们再来好好分析一下:

我们假设“哥德尔数是 \(\text{sub}(n,n,17)\) 的命题无法证明”是一个假命题,那么它的反面一定是一个真命题.

而它的反面是“哥德尔数是 \(\text{sub}(n,n,17)\) 的命题可以证明”.

所以,我们得知了哥德尔数是 \(\text{sub}(n,n,17)\) 的命题可以证明.

而哥德尔数是 \(\text{sub}(n,n,17)\) 的命题是啥呢?

它就是“哥德尔数是 \(\text{sub}(n,n,17)\) 的命题无法证明”,我们推出了它可以证明,那么它一定是一个真命题(只有真命题可以被证明).

但是这就矛盾了,一开始我们假设“哥德尔数是 \(\text{sub}(n,n,17)\) 的命题无法证明”是一个假命题,现在又推出它是一个真命题.

这只能说明原来的假设是错误的,所以“哥德尔数是 \(\text{sub}(n,n,17)\) 的命题无法证明”是一个真命题.

而这个命题说的就是自己无法证明,所以,这是一个\({\color{red}\textbf{真却无法证明}}\)的命题.

于是我们就证明了最初我们说的“每个数学系统都存在一些语句永远无法被证明”.


这就是哥德尔第一不完备定理.

posted @ 2023-10-14 11:32  I_like_magic  阅读(1222)  评论(0编辑  收藏  举报