“实现路线由规格形态和状态表示决定。符号模型检查用 BDD 或逻辑公式整体表示状态集合并做不动点运算;自动机论模型检查把 LTL 等性质转成 $\omega$ 自动机,再检查与系统积的空性;P…”
形式陈述 ​
从全称规格到语言交集 ​
设系统
其中
取否定是量词变换:
若系统本身已有公平接受条件,产品需要组合两个接受条件,通常形成 generalized Büchi 或其他 acceptance。不能只保留规格自动机的接受集。
直觉
同步积构造 ​
Kripke 状态
有些约定让自动机先读
没有额外系统公平条件且规格自动机采用单一 Büchi 接受集时,产品接受状态是
产品无需一次性物化。后继生成器可按需组合系统后继与自动机转移,搜索只访问真正可达的状态对。
例子与边界
接受环判空 ​
对单一接受集的普通 Büchi 产品,语言非空当且仅当存在一个可达强连通分量,它拥有循环并与接受集相交。单节点 SCC 只有在带自环时才形成无限循环。
若产品采用 generalized Büchi 接受集合
算法可先求全部可达产品状态,再运行 SCC 分解;普通 Büchi 也可用 nested DFS on-the-fly 找接受环,generalized Büchi 则先退化或使用对应的多接受集算法。对普通产品,或把退化计数器计入产品规模后,若图有
这里的
请求无响应的产品轨迹 ​
取两状态系统
规格
grant,
推论与应用
on-the-fly 不变量 ​
on-the-fly 搜索同时生成系统与公式状态,一旦找到接受环即可停止,不必探索与反例无关区域。正确性依赖每个已生成产品边都严格同步标签,并让 visited key 包含两个分量。
若 visited 只按系统状态去重,同一个
partial-order reduction 若与 LTL 产品结合,还需保持 stutter-invariant 性质并满足 cycle proviso;普通安全可达约简条件不足以自动保存接受循环。
模型与算法边界 ​
自动机路线验证有限或可有限生成模型上的
翻译和产品构造产生的反例证明模型违反规格,不保证现实调度公平或实现与模型一致。公平假设、隐藏动作和终止自环都属于输入语义的一部分。
当公式自动机含非确定分支时,同一系统路径可对应多个产品路径;判空只需其中一条接受。
参考资料
- Moshe Y. Vardi and Pierre Wolper, “An Automata-Theoretic Approach to Automatic Program Verification,” LICS, 1986, pp. 332–344。
- Costas Courcoubetis et al., “Memory-Efficient Algorithms for the Verification of Temporal Properties,” Formal Methods in System Design 1, 1992, pp. 275–288。
- Christel Baier and Joost-Pieter Katoen, Principles of Model Checking, MIT Press, 2008, Chs. 4–5。