故障森林的合成:基于归纳有效性核心的最小割集计算方法
1. 实现概述
为实现相关形式化方法,需按分析层计算最小割集,将其转换为布尔公式并进行合成。Ghassabani 等人开发的全最小归纳有效性核心算法(All MIVCs)可给出证明安全属性所需的最小合同集。若获取所有这些集合,就能洞察该属性的所有证明。违反每个 MIVC 集中的至少一个合同,就相当于“破坏”了所有证明,而所有 MIVC 的击中集可产生最小割集。
2. 形式化背景
- JKind 模型检查器 :JKind 是用于安全属性的开源工业无限状态归纳模型检查器。其模型和属性用 Lustre 语言指定,使用线性实数和整数算术理论。JKind 使用 SMT 求解器并行证明和证伪多个属性。
- 归纳有效性核心(IVC)和最小归纳有效性核心(MIVC)
- IVC 定义 :对于 (I, T) ⊢P,S ⊆T 是归纳有效性核心,记为 IVC(P, S),当且仅当 (I, S) ⊢P。
- MIVC 定义 :S ⊆T 是最小归纳有效性核心,记为 MIVC(P, S),当且仅当 IVC(P, S) 且对于 S 中的每个 Ti,(I, S \ {Ti}) ̸⊢P。
- 约束系统相关概念
- 最小不可满足子集(MUS) :约束系统 C 的最小不可满足子集