“自动机论模型检查还在系统与 Büchi 自动机的积图中寻找从初态可达、并含接受状态的有环 SCC。SCC 算法只完成图判空步骤,积构造和接受条件由模型检查语义决定。”
从全称规格到语言交集 ​
设系统
其中
取否定是量词变换:
若系统本身已有公平接受条件,产品需要组合两个接受条件,通常形成 generalized Büchi 或其他 acceptance。不能只保留规格自动机的接受集。
同步积构造 ​
Kripke 状态
有些约定让自动机先读
产品接受状态通常是
产品无需一次性物化。后继生成器可按需组合系统后继与自动机转移,搜索只访问真正可达的状态对。
接受环判空 ​
有限产品图非空,当且仅当存在可达强连通分量,其中含接受状态并拥有循环。单节点 SCC 只有在带自环时才形成无限循环。
算法可先求全部可达产品状态,再运行 SCC 分解;也可用 nested DFS on-the-fly 找接受环。若产品有
这里的
请求无响应的 lasso ​
规格为
若系统路径先到状态
产品相应路径最终停留在接受 SCC。投影掉自动机分量,得到系统级 lasso 反例。
若循环中某状态含 grant,监控自动机无法沿接受状态继续,产品环被打断。只看系统图存在循环,不足以说明它违反该公式。
on-the-fly 不变量 ​
on-the-fly 搜索同时生成系统与公式状态,一旦找到接受环即可停止,不必探索与反例无关区域。正确性依赖每个已生成产品边都严格同步标签,并让 visited key 包含两个分量。
若 visited 只按系统状态去重,同一个
partial-order reduction 若与 LTL 产品结合,还需保持 stutter-invariant 性质并满足 cycle proviso;普通安全可达约简条件不足以自动保存接受循环。
模型与算法边界 ​
自动机路线验证有限或可有限生成模型上的
翻译和产品构造产生的反例证明模型违反规格,不保证现实调度公平或实现与模型一致。公平假设、隐藏动作和终止自环都属于输入语义的一部分。
当公式自动机含非确定分支时,同一系统路径可对应多个产品路径;判空只需其中一条接受。visited 集必须保留自动机状态,不能因系统分量相同而合并这些不同义务。
参考资料
- 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。