静态分析中逻辑公式的有限差分与基于证明变换的寄存器分配
1. 有限差分方法在逻辑公式静态分析中的应用
1.1 基本概念与图的边变化
在逻辑公式的静态分析中,对于具有“unique”属性的情况,在满足 $q(v)$ 的任何赋值中,每个可允许的结构对于变量 $v$ 都有唯一可能的绑定,在包含 $q(v)$ 出现的公式中,$v$ 是锚定变量。
当 $\Delta_{st}^{+}[\phi_1]$ 的两个自由变量都是锚定的,且 $\Delta_{st}^{-}[\phi_1] = 0$ 时,这种变化会给由 $\phi_1$ 定义的图添加一条边;反之,当 $\Delta_{st}^{-}[\phi_1]$ 的两个自由变量都是锚定的,且 $\Delta_{st}^{+}[\phi_1] = 0$ 时,这种变化会从图中移除一条边。在这些情况下,可以使用上述方法更新 $\phi_1$ 的自反传递闭包。
1.2 实验评估
为了评估相关技术,对 TVLA 进行了扩展,以生成谓词维护公式,并将其应用于包含 5 个现有分析规范、涉及 26 个程序的测试套件。测试程序包括对无环单链表、双链表、二叉树和二叉搜索树的各种操作,以及几个排序程序。
系统用于验证测试程序的一些部分正确性属性,例如:
- Reverse 程序必须保留列表属性且不丢失元素。
- InsertSorted 和 DeleteSorted 必须保留二叉搜索树属性。
- InsertSort 必须返回一个排序列表。
- Good Flow 不能允许高安全级别的输入数据流向低安全级别的输出通道。
部分程序存在漏洞,例
超级会员免费看
订阅专栏 解锁全文
765

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



