探索Eagle中的顺序组合与连接操作
1 引言
常见的时态逻辑,如命题时态逻辑、扩展时态逻辑和模态 μ - 演算虽然具有较强的表达能力,但它们并未定义与命令式编程中最常见的顺序组合原则类似的运算符。顺序组合允许将两个轨迹拼接在一起,其中第一个轨迹的最后一个状态与第二个轨迹的第一个状态重叠。如果一个轨迹能按上述方式切割成两个子轨迹,且顺序组合公式的两个操作数分别在这两个子轨迹上成立,那么该顺序组合公式在该轨迹的起始处就会得到满足。
而连接操作对轨迹的切割则是没有重叠部分的,两个子轨迹拼接起来就形成了原始轨迹。虽然顺序组合和连接操作看似密切相关,但此前尚未得到正式研究。
本文将研究运行时验证逻辑Eagle。Eagle是一种基于有限轨迹的时态定点逻辑,能够在不存储执行轨迹的情况下进行高效的在线监控。在Eagle中,顺序组合和连接操作都是其逻辑语言的一部分。本文将证明顺序组合和连接操作具有同等的表达能力,即它们可以相互表示。此外,还将扩展Eagle,引入顺序组合和连接操作的确定性变体,并证明这些变体在应用于左操作数时,在线监控的渐近时间和空间复杂度不会比子公式更差。
1.1 示例动机
为了更好地理解确定性切割运算符的作用,下面给出两个示例:
- 示例1:故障安全系统 :考虑一个故障安全系统,当发生错误时,系统最终会自我重置并进入预定义的“良好”状态。可以用以下规范来描述这种行为:
max ErrHandler(Form F) = ⌈F⌉· (⌊err ∧ Eventually(rst)⌋· ErrHandler
超级会员免费看
订阅专栏 解锁全文
25

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



