通过算法学习推导不变式
1. 引言
在程序分析和验证领域,推导循环不变式是一项关键任务。本文介绍了一种通过算法学习来推导不变式的技术,该技术结合了算法学习、决策程序和谓词抽象,能够有效地找到满足特定条件的循环不变式。
2. 算法概述
- 成员查询解析(Algorithm 3)
- 输入:对布尔代数 (B(A)) 的一个赋值 (\mu)。
- 步骤:
- 计算 (\theta := \gamma^*(\mu))。
- 使用 SMT 求解器检查 (\theta) 的可满足性:
- 如果 (SMT(\theta) \to UNSAT),则返回 NO。
- 如果 (SMT(\theta \land \neg \underline{\iota}) \to UNSAT),则返回 YES。
- 如果 (SMT(\theta \land \neg \overline{\iota}) \to \nu),则返回 NO。
- 如果以上条件都不满足,则以 (\theta) 终止。
(* ι: 下近似; ι: 上近似 *)
Input: a valuation μ for B(A)
θ := γ∗(μ);
if
超级会员免费看
订阅专栏 解锁全文
1546

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



