从LTL公式生成Büchi自动机的符号算法
1. 引言
在分布式软件系统的验证中,对系统所有可能运行情况进行全面分析是提升系统质量的重要方法。LTL(线性时态逻辑)模型检查是一种常用的验证手段,其基于理论自动机方法,将表达系统属性的LTL公式取反后转换为对应的Büchi自动机,再与由Kripke结构表示的系统模型进行并行组合。本文旨在开发一种从LTL公式生成Büchi自动机的有效算法。
2. 背景知识
LTL公式由原子命题集AP、逻辑连接词以及时态运算符U和X构建而成,其语法规则如下:
[
\phi ::= p|\neg\phi|\phi \land\phi|X\phi|\phi U\phi
]
其中 (p \in AP)。可推导的时态运算符有 (F\phi = True U\phi) 和 (G\phi = \neg F(\neg\phi))。
一般来说,构建Büchi自动机的复杂度会随LTL公式长度呈指数增长。对于较小的LTL公式,这种复杂度并非障碍,但在实际应用中,LTL公式可能会非常庞大,尤其是在根据对验证系统行为的某些假设(即所谓的公平性约束)来验证属性 (\phi) 时。
例如,“如果交流发电机状态无限次保持一致,那么每次按下保护按钮,船舶电源将在未来某个时刻激活”,对应的LTL公式为 (GFp \to G(q \to Fr)),其中 (p) 表示“交流发电机处于一致状态”,(q) 表示“按下保护按钮”,(r) 表示“船舶电源激活”。船舶电源系统的状态依赖于许多参数,如柴油机压力、温度等。通过添加额外的子公式,这类约束可以很容易地用LTL表达,但整个LTL公式的规模会不断增大:
超级会员免费看
订阅专栏 解锁全文

4066

被折叠的 条评论
为什么被折叠?



