Skip to content

定义Definition

语法的哥德尔编码

Gödel coding of syntax · Arithmetization of syntax

把有限项、公式和自由变量替换编码为自然数运算,为算术内部表达语法提供接口。

形式陈述 ​

怎样让只谈自然数的语言讨论公式?先在元语言中给有限语法树编号,再把语法操作转成数上的函数。固定算术语言 {0,S,+,×},变量为 v0,v1,…。记 code(φ) 为公式的自然数代码;记 n―=Sn0 为对象语言中表示 n 的闭项。两者属于不同层次:n 是数,n― 是项,num(n)=code(n―) 又是数。

一种合用的哥德尔编码应当可以有效识别合法项与公式,并使数码构造、自由变量检查及代入成为原始递归运算。下面给出一套明确的树编码。后续计算始终使用这套编码。

令配对函数

C(a,b)=(a+b)(a+b+1)2+b.

项的编码记作 c:

c(0)=0,c(vi)=5i+1,c(S(t))=5c(t)+2,c(t+u)=5C(c(t),c(u))+3,c(t×u)=5C(c(t),c(u))+4.

公式另用自己的类别解码,记作 q:

q(t=u)=6C(c(t),c(u))+1,q(¬φ)=6q(φ)+2,q(φ∧ψ)=6C(q(φ),q(ψ))+3,q(φ∨ψ)=6C(q(φ),q(ψ))+4,q(∀viφ)=6C(i,q(φ))+5,q(∃viφ)=6C(i,q(φ))+6.

箭头作为联结词缩写,编码前展开。项与公式的代码不要求彼此不相交;调用解码器时必须指定类别。项的正整数余类 0(mod5) 不合法;公式代码 0 不合法,正整数余类 0(mod6) 按最后一条先减 6 再除 6。合法性检查再递归进入子对象,直到每个节点均通过相应类别的检查。

直觉

编码相当于给语法树一种可逆的存储格式。数字大小没有逻辑意义:换一种合法编码,某句的编号可能完全改变,绑定结构与证明仍可被追踪。真正有用的是“读出构造符号、取得子树、重新组装”的操作有明确算法。

尤其不能把公式 A(z) 的输入位置理解为可以放进任意元语言记号。A(q(φ)―) 是合法的对象语言公式;单写 A(q(φ)) 若没有声明缩写,就把外部编码函数误当成了语言符号。PA 的签名没有 q、num 或下面的 d。

例子与边界

一次真正受绑定约束的数字替换 ​

取

H(v0)=(∀v0(v0=0))∧(v0=0).

计算得 c(v0)=1,c(S0)=2,c(SS0)=12,而 q(v0=0)=6C(1,0)+1=7。左支的代码为

6C(0,7)+5=215,

故整个公式代码是

q(H)=6C(215,7)+3=148563.

现在仅把自由出现的 v0 换成 2―=SS0。左支遇到 ∀v0 后停止向内替换,仍为 215;右支变成 SS0=0,代码是 6C(12,0)+1=469。重组得

6C(215,469)+3=1408437.

解码得到 (∀v0(v0=0))∧(SS0=0)。若连左支也改掉,结果会是 ∀v0(SS0=0),那是改写了受约束出现,并非自由变量替换。若把输入数 2 当成项代码,则它解码为 S0,同样会算错;应先计算 num(2)=12。

全定义约定与原始递归性的理由 ​

本页只需闭项替换。定义 sub(a,i,t):当 a 是合法公式代码、t 是合法闭项代码时,输出将其中自由 vi 换成该项后的公式代码;其余输入一律返回 q(0=0)=1。这个默认值使函数全定义。一般开放项的捕获规避替换还需绑定变量改名;这里的闭项接口已足够完成后面的数码代入。

解码 C 可在 a,b≤n 内有界搜索 C(a,b)=n;除法、余数、配对与有限条件分支都是原始递归的。每个真子项、真子公式代码严格小于父节点代码。因而可按 0,1,…,a 依次建立合法性和变量出现信息表;每次只查询已建立的条目。表可以用迭代配对编码,取第 j 个条目只需有界次解码。这样,“使用所有较小参数的递归”便落实为普通原始递归。

固定参数 i,t 后,同样建立替换结果表:原子式调用项替换;联结词组合子公式结果;量词绑定 vi 时直接保留该量词节点及其整个原有子树,绑定其他变量时重建量词。由于 t 闭合,不会发生变量捕获。虽然新代码可能远大于输入,每轮更新仍由已知原始递归运算组成。数码代码满足 num(0)=0、num(n+1)=5num(n)+2,也有直接递归构造。

推论与应用

若 a 编码一个自由变量至多为 v0 的公式,定义

d(a)=sub(a,0,num(a));

其他输入规定 d(a)=1。自由变量检查、数码构造和替换的复合说明 d 是总的原始递归函数。它把模板的代码送回模板的自由位置;算术可表示性负责将这项外部计算转成理论内公式,对角引理再用它制造可证等价。

这与复杂性理论的多项式算术化任务不同:后者在有限域中把布尔函数扩展为低次多项式,以支持随机检查;本页把语法对象与语法操作编码为自然数,不靠低次数或有限域概率保证。编码也不是语义真理判定器:能机械判断“这是一份合式公式”,并不意味着能判断公式在标准自然数中是否为真。

验收练习。 不看算例重算 148563↦1408437,分别写出数 2、数码 SS0、项代码 12,并说明为何左支不变。三个对象和绑定分支都正确,才完成了这项替换任务。

参考资料
  • Open Logic Project,The Open Logic Text: Incompleteness,rev. 9620cc7,2026-07-12,§§2.3–2.5,Propositions 2.6、2.11:数码与替换的原始递归编码。本文树编码及十进制算例为单独给出的教学约定。
关系图谱9 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系