“确定监控器使过去输入输出唯一确定当前q,不需要猜未来。一般LTL先经LTL 到 Büchi 转换取得识别公式本身的非确定自动机;这里不是模型检查中识别否定公式的坏行为机。其接受分支只保证对完…”
LTL 公式用“下一步”“最终”“一直”“直到”等词描述无限执行。把它转成 Büchi 自动机,就是把这些时间要求改写成一台有限状态机器,让机器沿执行序列读取每一步发生的事,并用无限运行的接受条件判断要求是否真的兑现。
转换中最重要的一点是:局部转移只能说明一项义务怎样被推迟,接受条件才能保证它没有永远被推迟。 如果省掉后者,“最终发生”就会被错误地理解成“每一步都说下一步再发生”。
形式陈述
输入是什么,自动机要接受什么
设原子命题集合为有限集
LTL 语义
表示存在某个
目标是构造非确定性 Büchi 自动机
它由有限状态集、初态集、按字母标记的转移和接受条件组成。一次运行是否接受,取决于某些状态是否被无限次访问,而不是是否走到了某个有限的“终点”。[1]
一个完整的闭包—原子构造
下面给出便于核对正确性的教科书式构造。它不追求立即得到最少状态,而是把布尔一致性、下一步约束和无限接受三部分明确分开。
闭包:只跟踪有限多个子公式
先把公式化成否定范式:否定只出现在原子命题前,使用
构造有限闭包
原子:对“现在为真”作局部一致的猜测
状态取闭包中的一个集合
例如对
对
“恰选一个”保证状态不是随意列出部分愿望,而是对闭包作一份完整、互不矛盾的局部赋值。不过,局部一致仍然不能排除无限拖延,接受条件还没有加入。
转移:现在的 Next 必须成为下一状态的事实
初态集为
并且
于是读取
接受集合:排除无限期不兑现的 Until
对闭包中每个
要求运行对每一个
这里包括闭包中由否定 Release 产生的 Until。因为状态对公式及其对偶都声明真假,这些对偶的无限语义也必须受到约束。只为原公式表面上出现的几个 Until 加条件,却保留完整对偶状态系统,可能允许错误的真值猜测。
直觉
先理解一个义务:最终看到 q
公式
| 当前状态 | 读到的字母 | 下一状态 |
|---|---|---|
| 任意字母 |
只有
一旦
对 Fq,W 表示仍在等待,D 表示义务已经完成。D 是接受态,见过一次 q 后即可一直停留。
为什么只展开 Until 还不够
Until 满足局部展开式
含义是:要么终点条件
但这个方程允许一个虚假的无限解:让
因此自动机还要为每个 Until 设置一个接受集合:运行必须无限次处于“这项义务当前不活跃”或“它的终点条件已经出现”的状态。持续活跃却永不兑现的义务,就会被排除在接受运行之外。
Release 是 Until 的对偶:
局部展开为
它允许
为什么这个构造确实识别原公式
从满足公式的词到接受运行。 对给定词
真实语义自动满足布尔关系、Until/Release 展开和 Next 转移。如果
从接受运行到满足公式。 证明状态中的公式与词的真实语义相符。原子、布尔和 Next 情况由字母匹配与转移条件处理。关键仍是 Until:若
若一直见不到
最后
补充示意图
例子与边界
复杂度与表达能力的边界
从 LTL 到非确定性 Büchi 自动机,最坏情况需要指数级状态,构造规模的上界并非完全来自某个实现不够聪明。非确定性有时也不可避免:例如“最终一直满足
需要确定性自动机时,通常使用奇偶或Rabin等更一般的接受条件;Safra确定化解释了Büchi运行历史如何保存在有限树里,一般LTL到确定自动机的最坏规模可达双指数。反过来,Büchi能表达全部
确定监控器也为LTL控制器综合提供接口。验证寻找一条违反给定系统规格的路径;综合则先选一个只看已知输入的统一输出策略,再要求它应对全部环境输入。把非确定自动机的一次成功猜测直接当作控制器动作,会漏掉这一量词和信息时机的变化。
学习与实现时,最值得检查的仍是三个细节:字母在哪个状态位置被读取,Next 是否准确跨一步,以及所有 Until 义务是否分别接受公平性约束。状态数优化应建立在这三项语义对齐之后,而不能用更小的图替代正确的无限运行含义。
推论与应用
多项义务与普通 Büchi 的转换
对
假设广义接受集合为
普通 Büchi 接受集可以准确地取为
它标记一整轮等待将被完成的位置。无限次访问
不能只把“计数器等于 1”设为接受条件:若运行永远没等到
这一转换增加至多
模型检测时为什么转换的是否定公式
设有限状态系统
因此常构造的是“坏执行”的自动机,再与系统做乘积,寻找接受运行。若有限图存在接受无限运行,就存在一段有限前缀加非空循环组成的接受见证;这不表示每一条接受运行都最终周期。在广义 Büchi 情形,相关可达强连通区域还需能反复经过每个接受集合,并确实包含可无限运行的循环。
例如响应性质
的否定为
坏执行自动机可以非确定性地猜测某次请求从此永远得不到授权,然后检查后面始终没有 grant。非确定性不是在有限时间里神奇地预知未来,而是提供多个候选运行,只有猜测与整个无限词一致的那条才会接受。
这里
参考资料
[1] Moshe Y. Vardi and Pierre Wolper, “An Automata-Theoretic Approach to Automatic Program Verification,” LICS, 1986;链接为作者版本,奠定逻辑到无限自动机的模型检测路线。
[2] Rob Gerth, Doron Peled, Moshe Y. Vardi, and Pierre Wolper, “Simple On-the-fly Automatic Verification of Linear Temporal Logic,” PSTV, 1995, pp. 3–18,按需转换与 Until 接受义务。
[3] Paul Gastin and Denis Oddoux, “Fast LTL to Büchi Automata Translation,” CAV, 2001, pp. 53–65,实用转换与简化。
[4] Christel Baier and Joost-Pieter Katoen, Principles of Model Checking, MIT Press, 2008,LTL、广义 Büchi、空语言检查及其正确性。