数据结构计算与逻辑组合决策过程
在软件开发中,为了确保软件的正确性,我们需要使用一些可判定逻辑来指定软件的正确性属性,从而实现自动化软件验证。然而,实际感兴趣的正确性属性往往不能用单一的逻辑来表达,而需要将多种逻辑进行组合。本文将介绍一种决策过程,用于处理可能量化的非不相交理论公式的组合,特别是共享集合操作的理论组合。
树约束与抽象函数
在处理树结构时,我们常常会遇到结合树项约束和集合理论项约束的公式。例如,公式中可能包含树项之间的关系,以及通过抽象函数 $\alpha$ 建立的树与集合之间的联系。
抽象函数在树结构的处理中起着重要作用。除了基本的集合抽象,还有其他一些感兴趣的抽象函数,如计算保留元素重数的多重集、计算按中序遍历读取的元素列表、计算最小或最大元素等。甚至像树的有序性这样的不变量也可以表示为一种范畴态射。
决策过程
我们的决策过程主要用于解决 $T_{\alpha}$ 文字合取式的可满足性问题。对于任意布尔结构的公式,可以采用 DPLL(T) 方法进行扩展。
决策过程的总体思路是先使用合一算法解决树的约束,然后推导和传播与抽象树的集合类型 $C$ 相关的所有结果,从而将树及其抽象值在 $L_C$ 中的问题简化为 $L_C$ 中的问题。
以下是决策过程的详细步骤:
1. 重写为标准形式 :
- 纯化 :通过引入新变量和形如 $c = \alpha(t)$ 的等式,将树项之间的等式和不等式与 $L_C$ 的文字分离。
- 扁平化 :引入新变量表示
超级会员免费看
订阅专栏 解锁全文
9万+

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



