Page 35 - 《软件学报》2026年第2期
P. 35

514                                                        软件学报  2026  年第  37  卷第  2  期


                  1.4   Superposition  演算

                    Superposition  演算是定理证明系统中最主流的推理系统           (inference system) [8,11,27] 之一. 定理证明问题可以视作
                 由特定理论下的一组公理         (axiom) 和一个待证明的断言      (conjecture) 组成.
                    推理   (inference): 大多数定理证明器基于一个推理系统来自动地化简和生成公式. 这一过程被称为推理
                 (inference), 由如下的规则  (rule) 表示:

                                                        F 1 ,F 2 ,...,F n
                                                                 ,
                                                            G
                 其中,  F 1 ,F 2 ,...,F n  被称为前件  (premise), G  被称为推理的结论  (conclusion). 没有前件的推理称为公理  (axiom). 一
                 些推理规则的集合构成一个推理系统              (inference system). 在推理系统中作为输入的公式通常为合取范式           (clausal
                 normal form, CNF). 一般用  cnf(F) 来表示将公式  F  转为  CNF  形式的子句集合.
                    化简  (simplifying): 当一个或多个前件因为他们对给出结论冗余, 能够从公式集合中去掉时, 称这个操作为化
                 简  (simplify): 如   / F 1 ,F 2 ,...,F n   表示可将前件中的  F 1  消去.
                                 G
                    合理和完备     (sound & complete): 当一个推理规则的结论在逻辑上由它的前件推出, 则该规则被称为合理的
                 (sound), 当一个推理系统的所有规则都是合理的, 则称这个推理系统为合理的; 当一个推理系统所有有效的公式集
                 合都能在该系统中被证明为          true, 则该推理系统被称为完备的        (complete).
                    反证完备    (refutationally complete): 我们称在推理系统中结论为否定  (一般用  ⊥ 表示) 的推理为“反证     (refutation)”.
                 反证完备指对任意不满足的公式集合, 都可以推理出空子句.
                    化简序   (simplification ordering): 在对  superposition  推理系统的具体推理规则进行介绍前, 我们首先引入化简
                 序  (simplification ordering) 概念. 化简序是通过在推理系统中引入一个“优先级”来在指导推理过程中如何选择和
                 化简子句: 选择子句指的是决定推理过程中需要被优先处理哪些子句, 化简子句指的是如何基于一些规则来删除
                 冗余子句或者简化复杂子句, 从而减少搜索空间.
                                                                                    l
                    我们用符号     ≻ 来表示化简序, 并将其扩展到文字、子句和等式上. 一个等式两边的   和                   r, 如果有  l ≻ r, 则它们
                 的方向为    l = r. 项上的一个序   ≻  若满足以下   4  种性质, 则称之为化简序: 1)      ≻  是良基的, 即存在项的有限序列
                                                                        s s[l] ≻ s[r]. 3)
                 t 0 ,...,t n , 使得  t 0 ≻ t 1 ≻ ... ≻ t n . 2)  ≻ 是单调的, 即如果  l ≻ r, 那么对任意项  ,   ≻ 在替换下保持稳定, 即如
                                    θ lθ ≻ rθ. 4)
                                                               r
                                                                  l
                 果  l ≻ r, 那么对任意替换  ,         ≻ 具有子项性质, 如果   是   的子项, 且     l , r, 那么  l ≻ r. 定义化简序的直观意
                 义是为了描述表达式之间“谁更加简单”, 从而更适合被推理系统优先处理.
                    例如当使用字典序作为化简序时, 基于符号字母顺序来定义序关系, 对于项                       f(a,b) 和项   f(a,c), 字典序  a ≻ b ≻ c,
                 因此   f(a,b) ≻ f(a,c).
                    一种常用的化简序是        KBO (Knuth-Bendix ordering), 它基于权重和符号优先级. 预先定义符号的权重和优先
                 级, 先比较权重, 相同时再比较符号优先级来确定项之间的化简序.
                                                             ,
                    例如定义符号优先级        f > g > a > b > c, 权重   w( f) = 2 w(g) = w(a) = w(b) = w(c) = 1, 表示令二元函数   f  的权重
                                                          ,
                                                                                     ,
                 要大于一元函数和常量. 那么对于项            f(a,b)  和  g(g(c)) w( f(a,b)) = w( f)+w(a)+w(b) = 4 w(g(g(c))) = w(g)+w(g)+
                 w(c) = 3, 于是  f(a,b) ≻ g(g(c)).
                    Superposition  演算: 大多数现代一阶定理证明器使用         superposition 演算作为他们的推理系统, 通常将        super-
                                       .
                 position  推理系统简称为  Sup Sup 是合理  (sound) 且反证完备   (refutationally complete) 的.  Sup 基于反证法来证明
                 公式成立, 称为    saturation-based proof search  过程  (将在第  3.1  节进行介绍).
                     Sup 推理系统的核心规则是        superposition 规则, 该规则最早提出是为了扩展归结        (resolution) 规则, 引入基于

                 等式的重写操作来化简公式. Superposition      名称的来源没有官方公认的说法, 原词字面意思是“叠加”或“重叠”, 可
                 能是由于    superposition  规则一般通过“等式理论”, 将公式项中某一位置的子项替换为另一个项, 然后基于归结原
                 理进行推理. 这一个操作是多个步骤的叠加, 也是将信息重叠到逻辑公式中某一位置的项进行传递.
                    Superposition  演算的推理规则如下.
   30   31   32   33   34   35   36   37   38   39   40