静态软件分析中的增量式假路径消除
1. 引言
在静态软件分析中,假路径的存在会导致分析结果出现误报,影响分析的准确性和效率。本文将介绍一种基于反例引导的路径缩减方法,用于消除静态软件分析中的假路径。该方法通过将潜在的反例映射到区间方程系统,判断其是否为假路径,并通过创建冲突观察者来逐步消除假路径。
2. 区间方程与引理
2.1 区间方程的优势
创建区间方程的一个优势是可以自然地处理循环。在循环中,第三次或第四次重复不会引入新的变量和表达式。例如,对于一个由 $\alpha\beta\beta\beta\gamma$ 拼接而成的单词,如果 $\alpha\beta\beta\gamma$ 的方程系统没有非空解,那么 $\alpha\beta\beta\beta\gamma$ 的方程系统也没有非空解,且它们的最小解相同。
2.2 引理 1
给定一个单词 $w \in L\hat{P}$,存在一个非空赋值序列 $v_1, \ldots, v_m$ 使得 (3) 式对 $w$ 成立,当且仅当 $IE_w$ 有非空最小解。
证明:给定 (3) 式的解,我们可以构造 $IE_w$ 的非空解,而这个解必定包含在 $IE_w$ 的最小解中。
3. 冲突发现
3.1 假片段的判断
在无限状态系统的 CEGAR 方法中,找到反例的假片段通常比找到整个假反例更有效。对于一个单词 $w = (l_0, \ldots, l_m)$,其片段 $w’ = (l’ 0, \ldots, l’ {m’})$ 是 $w$ 的子序列。如果
超级会员免费看
订阅专栏 解锁全文
4623

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



