叠加、插值与谓词抽象:理论与算法解析
在自动化推理和程序验证领域,叠加、插值以及谓词抽象等技术扮演着至关重要的角色。这些技术不仅能够帮助我们证明程序的正确性,还能为我们提供有效的方法来处理复杂的逻辑问题。下面将详细介绍这些技术的相关内容。
叠加与插值
我们主要关注从叠加反驳中提取插值的问题。这一研究的动机在于这些插值在验证方面的潜在应用。我们仅考虑基础公式以及两种叠加演算:标准叠加演算和其扩展LASCA。
- 叠加演算的问题 :之前有研究尝试从叠加证明中提取插值,但存在错误。例如,有论文引用了叠加演算的一个性质(未证明),即如果一个子句C由一组饱和子句S蕴含,那么C由S中严格小于C的子句子集蕴含。然而,即使使用小于或等于C的子句子集,这个性质也不成立。比如,仅包含子句f(a) ≠ f(b)的集合是饱和的,且a ≠ b由它推出,但在所有简化排序中,a ≠ b严格小于f(a) ≠ f(b)。
- LASCA演算 :LASCA是用于基础线性有理算术和未解释函数的演算。它是一个双排序理论,使用符号“=”表示有理数排序上的相等,使用符号“≃”表示第二个排序上的相等。所有规则都有条件l ≻ r。标准的基础公式叠加演算可以通过以下步骤从LASCA得到:
- 移除所有算术规则;
- 将模AC相等(=AC)替换为语法相等;
- 将⊥ - 消除规则替换为相等消解规则:
s ≠ s ∨ C
C
超级会员免费看
订阅专栏 解锁全文
14

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



