Skip to content

一阶统一

First-order unification · Syntactic unification

寻找使若干一阶项在替换后相等的最一般替换。

形式陈述

给一阶项方程组 si=ti,统一问题要求替换 σ 使 σ(si)=σ(ti) 对所有 i 成立。若存在统一子,标准算法通过删除相等式、分解同头函数、变量消去和 occurs check 求得最一般统一子 MGU;任一其他统一子都可写为 MGU 后再复合某个替换。 不含递归类型时,方程 X=f(X) 必须因 occurs check 失败。

直觉

统一不是猜一个具体类型,而是保留所有可行解共有的最一般结构,把剩余自由度留给后续实例化。

例子与边界

方程 f(X,a)=f(b,Y) 的 MGU 为 [Xb,Ya]。省略 occurs check 会错误接受无限项;带结合、交换等理论的统一是不同且通常更难的问题。

推论与应用

它是 Hindley–Milner 类型推断、逻辑编程、项重写和自动定理证明的核心求解器。

参考资料