形式陈述
怎样让只谈自然数的语言讨论公式?先在元语言中给有限语法树公理库一阶逻辑语法First-order syntax以符号表、项、原子公式、联结词和量词归纳生成一阶公式的语法系统。编号,再把语法操作转成数上的函数。固定算术语言 ,变量为 。记 为公式的自然数公理库自然数模型Natural numbers · Peano system由零元、后继和二阶归纳原则范畴性刻画的离散数系模型。代码;记 为对象语言中表示 的闭项。两者属于不同层次: 是数, 是项, 又是数。
一种合用的哥德尔编码应当可以有效识别合法项与公式,并使数码构造、自由变量检查及代入成为原始递归公理库原始递归函数Primitive recursive function · Primitive recursion从零、后继和投影函数出发,有限次使用复合与原始递归构造出的自然数全函数。运算。下面给出一套明确的树编码。后续计算始终使用这套编码。
令配对函数
项的编码记作 :
公式另用自己的类别解码,记作 :
箭头作为联结词缩写,编码前展开。项与公式的代码不要求彼此不相交;调用解码器时必须指定类别。项的正整数余类 不合法;公式代码 不合法,正整数余类 按最后一条先减 再除 。合法性检查再递归进入子对象,直到每个节点均通过相应类别的检查。
直觉
编码相当于给语法树一种可逆的存储格式。数字大小没有逻辑意义:换一种合法编码,某句的编号可能完全改变,绑定结构与证明仍可被追踪。真正有用的是“读出构造符号、取得子树、重新组装”的操作有明确算法。
尤其不能把公式 的输入位置理解为可以放进任意元语言记号。 是合法的对象语言公式;单写 若没有声明缩写,就把外部编码函数误当成了语言符号。PA 的签名没有 、 或下面的 。
例子与边界
一次真正受绑定约束的数字替换
取
计算得 ,,,而 。左支的代码为
故整个公式代码是
现在仅把自由出现的 换成 。左支遇到 后停止向内替换,仍为 ;右支变成 ,代码是 。重组得
解码得到 。若连左支也改掉,结果会是 ,那是改写了受约束出现,并非自由变量替换。若把输入数 当成项代码,则它解码为 ,同样会算错;应先计算 。
全定义约定与原始递归性的理由
本页只需闭项替换。定义 :当 是合法公式代码、 是合法闭项代码时,输出将其中自由 换成该项后的公式代码;其余输入一律返回 。这个默认值使函数全定义。一般开放项的捕获规避替换还需绑定变量改名;这里的闭项接口已足够完成后面的数码代入。
解码 可在 内有界搜索 ;除法、余数、配对与有限条件分支都是原始递归的。每个真子项、真子公式代码严格小于父节点代码。因而可按 依次建立合法性和变量出现信息表;每次只查询已建立的条目。表可以用迭代配对编码,取第 个条目只需有界次解码。这样,“使用所有较小参数的递归”便落实为普通原始递归。
固定参数 后,同样建立替换结果表:原子式调用项替换;联结词组合子公式结果;量词绑定 时直接保留该量词节点及其整个原有子树,绑定其他变量时重建量词。由于 闭合,不会发生变量捕获。虽然新代码可能远大于输入,每轮更新仍由已知原始递归运算组成。数码代码满足 、,也有直接递归构造。
推论与应用
若 编码一个自由变量至多为 的公式,定义
其他输入规定 。自由变量检查、数码构造和替换的复合说明 是总的原始递归函数。它把模板的代码送回模板的自由位置;算术可表示性公理库算术可表示性Arithmetical representability用算术公式逐个输入证明函数值及其唯一性,连接外部计算和理论内推导。负责将这项外部计算转成理论内公式,对角引理公理库对角引理Diagonal lemma · Arithmetical fixed-point lemma对任意一个自由变量的算术公式,构造与该公式作用于自身编码可证等价的句子。再用它制造可证等价。
这与复杂性理论的多项式算术化公理库算术化Arithmetization把布尔关系嵌入有限域低次多项式,使离散正确性声明可由随机代数恒等式检查。任务不同:后者在有限域中把布尔函数扩展为低次多项式,以支持随机检查;本页把语法对象与语法操作编码为自然数,不靠低次数或有限域概率保证。编码也不是语义真理判定器:能机械判断“这是一份合式公式”,并不意味着能判断公式在标准自然数中是否为真。
验收练习。 不看算例重算 ,分别写出数 、数码 、项代码 ,并说明为何左支不变。三个对象和绑定分支都正确,才完成了这项替换任务。
参考资料
- Open Logic Project,The Open Logic Text: Incompleteness,rev. 9620cc7,2026-07-12,§§2.3–2.5,Propositions 2.6、2.11:数码与替换的原始递归编码。本文树编码及十进制算例为单独给出的教学约定。