形式陈述
语法与无限词语义
作为一种时序逻辑公理库时序逻辑Temporal logic · Temporal modal logic在执行序列上解释下一步、最终、始终与直到,并区分线性时间和分支时间的统一规格层。,LTL 在单条路径上解释公式。给定原子命题集合 ,公式由
生成,其中 。布尔析取、蕴含以及 都可作为派生符号。模型是一条无限序列公理库序列Sequence以自然数为定义域的函数。
满足关系在位置 递归定义。原子命题满足 ;next 满足 ;until 满足
于是 ,。经典 until 是 strong until,右侧目标必须最终出现。
系统满足关系的隐藏全称
公式先在单条词上解释。对带状态标记的系统 ,通常定义
路径全称不写在 LTL 公式内部,而放在系统满足关系外层。把 、 随意插入 LTL 语法,会混入分支时间逻辑。
若只要求存在一条路径满足 LTL 公式,那是另一个查询,常可通过检查否定或构造 witness 实现;它不能替代系统正确性的默认全路径量词。
直觉
请求—授权的逐位置检查
公式
要求对每个位置 :若 在 成立,则存在某个 使 成立。取无限词
并令 、 对所有 。位置 的请求由 的授权见证;位置 的请求没有见证,所以 。早期成功不能抵消晚期失败。反过来,两个请求可以由同一次稍后授权同时见证,除非规格另行要求请求—授权一一对应。
若写成 ,意思是授权出现无限多次; 则表示从某个位置起永远稳定。 与 量词顺序不同,不能靠自然语言“最终总会”含混翻译。
例子与边界
常用等价与正常形
对无限词有
这些展开式揭示公式是不动点方程,但单独的等式可能同时有多个解;strong until 的最小解语义和 globally 的最大解语义还来自无限词定义。
否定可推到原子命题前,但 until 的对偶需要 release 算子 :
模型检查前做正常化时,若错误地把 until 自对偶,会改变活性义务。
推论与应用
有限轨迹与停顿边界
经典 LTL 假设无限行为。对有限日志, 在最后位置究竟为假、未知还是采用 weak next,取决于 LTLf 或监控语义;必须单独声明。
不含 的 LTL 对停顿等价公理库停顿等价Stuttering equivalence · Stutter equivalence · Stutter invariance忽略连续重复的相同可观察状态块,以比较只增加内部停顿步骤的行为。不变,适合忽略实现增加的有限内部微步。含 、有界 eventually 或实时算子的公式可以观察步数,不能套用该结论。
LTL 能描述每条路径上的事件顺序,却不能在公式内部重新量化另一条未来。要表达“存在恢复路径但并非所有路径恢复”,需用CTL公理库计算树逻辑 CTLComputation tree logic · CTL · Branching-time temporal logic将路径量词 A/E 与时间算子成对组合,在 Kripke 状态上表达分支未来性质。;需要在一次路径选择后组合多个线性义务并再次嵌套路径量词,则进入CTL*公理库CTL*CTL* · Computation tree logic star · Full branching-time temporal logic以状态公式和路径公式两层语法自由嵌套路径量词与线性时间算子,统一包含 LTL 与 CTL。。
公式语义还区分命题在当前位置还是严格未来成立。由于 , 允许 当下即真, 也允许 当下兑现而无需先满足 。若需求写的是“之后某个严格更晚时刻”,需显式加入 或其他适合的事件边界。
模型检查通常把 改写为“存在系统路径满足 ”,再经LTL 到 Büchi 转换公理库LTL 到 Büchi 自动机的转换LTL to Büchi translation · LTL-to-automata translation将 LTL 公式构造为接受其模型无限词的 Büchi 自动机,并揭示 closure、承诺跟踪与指数状态增长。寻找接受 lasso。这个算法出口不改变本页的全路径满足定义;它只是用否定把全称失败变成存在见证。
参考资料
- Amir Pnueli, “The Temporal Logic of Programs,” FOCS, 1977, pp. 46–57。
- Zohar Manna and Amir Pnueli, The Temporal Logic of Reactive and Concurrent Systems, Springer, 1992, Chs. 1–4。
- Christel Baier and Joost-Pieter Katoen, Principles of Model Checking, MIT Press, 2008, Ch. 5。
- Michael Huth and Mark Ryan, Logic in Computer Science, 2nd ed., Cambridge University Press, 2004, Ch. 3。