定理证明器构建与项重写系统终止分析
1. AC 合一的全面应用之路
在理论研究中,结合交换(AC)函数频繁出现,但如果定理证明器没有进行特殊处理,就很难对其进行有效处理。即便从概念上看,用 AC 合一取代普通合一是个简单的想法,但这会给定理证明器带来诸多影响,需要大量的理论和实现工作。
1.1 AC 合一算法的发展
AC 合一算法最早于 1975 年被开发出来,但直到 1984 年才被证明是完备的。该算法十分有用,例如在 McCune 证明所有 Robbins 代数都是布尔代数的过程中就发挥了重要作用。
1.2 全面应用的挑战
- 架构支持 :定理证明器的架构必须支持合一算法产生多个合一子。高效索引 AC 项也很重要,虽然有复杂且未实现的 AC 区分树方法,但对于 Snark 来说,拥有与 AC 兼容的路径索引扩展会有所帮助。
- 重写和调解 :使用 AC 函数进行重写和调解时需要扩展重写。例如,重写规则
f(g(x), x) → e不能应用于f(g(a), a, b, c),但其扩展重写规则可以。 - 项排序 :项排序对于有效的等式推理是必要的,但通常的项排序与 AC 函数不兼容。虽然已经开发出了与 AC 兼容的项排序,但实现起来比基于的排序要困难得多。Snark 实现了递归路径排序的 AC 兼容扩展,但在实践中其指数行为有时是个严重问题。有一种与 AC 兼容的 Knuth - Bendix 排序扩展被认
超级会员免费看
订阅专栏 解锁全文
25

被折叠的 条评论
为什么被折叠?



