“其中 $\mathcal A {\neg\varphi}$ 由LTL 到 Büchi 转换得到。于是模型检查化为 Büchi 语言交与非空性。”
表达对应定理 ​
对每个LTL 公式
自动机状态数最坏为
模型检查通常构造的是
closure 与一致集合 ​
先把公式化为 negation normal form,使否定只作用于原子命题。定义 closure
候选自动机状态是 closure 的一致子集
并对每个命题选择相容真值。因为
一致性筛掉明显矛盾,却不单独保证所有无限时间义务兑现。尤其
next 与 until 的转移责任 ​
从宏状态
until 公式按展开
处理:若
若只允许义务永远延期,公式
generalized Büchi 接受集 ​
对每个
接受运行需无限多次访问每个这样的集合,表示义务反复被兑现或不再有效。自然构造得到 generalized Büchi automaton;再用计数器状态轮流等待各接受集,可转成普通 Büchi 自动机。
转换计数器增加状态,却保持语言。若把“访问所有接受集”错误改成“访问其中一个”,多个 until 义务中只兑现一项也会被接受。
公式轨迹示例 ​
取
反例自动机针对 request,随后进入监控阶段,要求以后每个位置都没有 grant。
若词中请求后第三步出现授权,进入监控的该次猜测会失败;自动机也可等待另一个请求。只有存在某次请求永远得不到后续授权,才有接受运行。
这说明非确定性用于猜测违反见证的位置,Büchi 循环用于证明义务在无限后缀上持续失败。
构造边界与优化 ​
不同翻译使用 tableau、alternating automata、very weak automata 或 formula progression;生成图大小和接受条件形式可不同,但都必须保存完整无限词语言。
实践中 on-the-fly 只生成与系统产品可达的自动机状态,常避免最坏全量指数图。它改善实际成本,不改变公式族的指数下界。
有限 trace、past operators 与 fairness 扩展需要相应变体。把经典无限词翻译直接用于终止日志,可能因末端 next/until 语义不同而给出错误接受结果。
参考资料
- Moshe Y. Vardi and Pierre Wolper, “An Automata-Theoretic Approach to Automatic Program Verification,” LICS, 1986, pp. 332–344。
- Rob Gerth, Doron Peled, Moshe Vardi, and Pierre Wolper, “Simple On-the-fly Automatic Verification of Linear Temporal Logic,” PSTV, 1995, pp. 3–18。
- Javier Esparza and Jan Křetínský, “From LTL to Deterministic Automata: A Safraless Compositional Approach,” Formal Methods in System Design 49, 2016, pp. 219–271。