带量化一阶逻辑规范程序的测试数据生成
1. 引言
在形式化测试生成技术中,量化公式常出现在测试数据约束里。为解决量化公式的模型生成问题,我们开发了相关算法。该算法虽不能保证找到解,但不局限于特定类别的公式,能解决一些现有可满足性模理论(SMT)求解器无法解决的公式。
2. 量化公式模型生成示例
2.1 示例分析
假设有公式 $\phi = (A, \forall x.\varphi(x) \Rightarrow B)$,其中 $A, B \in Fml_{FOL}$ 且 $\varphi(x) = (f(x) > x \land g(x) < f(x))$。直接为 $\phi$ 生成模型较为复杂,因为量化公式无法进行 Skolem 化。而对于 $\psi = (A \Rightarrow \forall x.\varphi(x), B)$,量化公式被否定(因为 $(F \Rightarrow) \equiv (\Rightarrow \neg F)$),所以可以进行 Skolem 化。$Th(\psi)$ 得到 $\Psi = {(A \Rightarrow f(sk) > sk, B), (A \Rightarrow g(sk) < f(sk), B)}$,其中每个 $\psi’ \in \Psi$ 的结构比 $\psi$ 更简单。
2.2 公式更新与反例生成
检查公式 (9) 很重要,因为它等价于 $(\alpha \to {u}\phi) \leftrightarrow (\alpha \to {u}\phi’)$(公式 (11)),而公式 (11) 是公式 (7) 的弱化形式。
超级会员免费看
订阅专栏 解锁全文
1306

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



