关系抽象域的最小化比较技术解析
1. 引言
在对关系不变式进行比较时,传统方法往往使用不变式的整体进行比较,这可能会引入一些错误的、延续性的改进。为了更精确地比较关系不变式,我们提出了一种基于定点算法的方法,旨在最小化比较关系抽象域,从而更准确地评估不同分析技术和抽象域的精度。
2. 问题提出
在比较假分支的不变式时,若使用不变式的整体而非仅改变的部分,会发现某些情况下结果的精度有所不同。例如,在假分支中,不变式改变部分的变量集可能相同,但在真分支中并非总是如此。如$\Delta(I_t, {x, y}) = y \leq x$,而$\Delta(\sim I_t, {x, y}) = y \leq x \land w \leq y$,后者多了变量$w$。为了进行合理的比较,需要对改变部分的不变式添加最小必要的内容。
3. 解决方法
3.1 问题定义
在DFA框架下,框架提供一组更新后的变量$dv$,从而产生新的不变式$I$。抽象域为$I$实现了函数$\Delta$,它返回$I$中已更新或依赖于$dv$中变量的部分。最坏情况下,$\Delta(I, dv) = I$;最好情况下,$\Delta(I, dv) = \varnothing$。同时,引入函数$V$,用于返回$I$中使用的变量集。
设$I_1$和$I_2$为两个关系不变式,$dv_1$和$dv_2$为它们对应的更新变量集。找到两个不变式的最小改变部分的问题,可归结为找到一个共同的最小更新变量集$S$,使得$S = V(\Delta(I_1, S)) = V(\Delta(I_2, S))$。
超级会员免费看
订阅专栏 解锁全文
5万+

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



