没有合适的资源?快使用搜索试试~ 我知道了~
On-the-fly Verification of Linear Temporal Logic中文翻译
需积分: 10 2 下载量 163 浏览量
2020-12-18
10:51:37
上传
评论
收藏 3.32MB DOCX 举报
温馨提示
试读
13页
On-the-fly Verification of Linear Temporal Logic中文翻译,虽然经过检查,但是里面的公式符号、单词的翻译仍然可能有错误,希望能帮助理解这篇文章
资源详情
资源评论
资源推荐
线性时序逻辑的实时验证
摘要
本文提出了两种新的实用算法,用于解决线性时序逻辑的两个关键的动态模型检验问题:时
序逻辑公式的随需构造自动机;实时检查由程序的积(product)和属性产生的自动机是否为空。
1 介绍
自动检查有限状态程序是否满足其线性规范是一个在过去 15 年中引起了广泛关注的问题。
线性时序逻辑是一种强大的规范语言,用于表达安全性、活动性和公平性。然而,模型检
验问题是 PSPACE-complete。在实践中,模型检查方法面临与复杂性相关的限制:状态空间
程序的大小,表示公式的底层自动机的大小,以及应用模型检查算法的乘积自动机的大小
人们设计了许多技术来避免状态爆炸问题。通过使用二叉决策图,表示程序和公式自动机
可以检查非常大的并行系统[5]。另一种优化方法是动态验证,包括构造程序状态空间、属
性的否定和乘积自动机,同时检查乘积自动机是否为空。该方法的优点是算法能在完整的
程序状态空间和属性自动机建立之前给出答案。动态验证可以与[10]、[14]、[17]、[22]、
[23]方法结合使用,这些方法通过使用部分顺序语义执行缩减来避免对完整状态空间的探
索。这两种方法的成功案例清楚地证明了自动验证的有效性,即使对于相当大规模的工业
应用也是如此。
本文提出了新的实用算法,旨在解决线性时序逻辑的两个关键的动态模型检验问题:
——按需构造 时序逻辑公式的自动机;
——实时检查程序的乘积和属性产生的自动机是否为空。
这两个问题都已经被有效地解决了。[9]中的自动机构造算法似乎可以为时序逻辑公式生成
合理规模的自动机,并且它是动态运行的。[7],[11],[12],[13]中的算法实时检查产品自
动机的空性。
我们的新自动机结构总是比在[9]中的好。它似乎能制造出更小的自动机。从实用的角度来
看,我们构建的是一个 B¨uchi 自动机的变体,即迁移 B¨uchi 自动机。与只有一组接受状态
[20]的简单 B¨uchi 自动机不同,transition B¨uchi 自动机有多组接受迁移。在[15]中已经证明,
具有迁移条件的 ω-自动机比具有节点条件的 ω 自动机简单。自动构造与[9]中提出的构造非
常相似。它也是基于 tableau 程序[25],[26]。我们的方法的关键是使用符号计算,它允许
我们以一种自然的方式简化表达式,然后减少节点数量。此外,使用二元决策图[1]、[3]、
[4]可以高效、方便地实现。
新的检查算法是 Tarjan 算法的简单变体。
-算法设计为动态运行,即在遍历产品自动机的过程中,一旦遇到故障组件,就会检测到故
障。
-该算法直接工作于具有多个接受条件的迁移 B¨uchi 自动机,即不需要扩展迁移 B¨uchi 自
动机到一个简单的 B¨uchi 自动机。
-该算法可以用于检查公平性假设的时态性质的公式∧
i
GFpi,而没有不必要的开销。
以前存在的算法[7]、[11]、[13]没有任何上述有趣的特性。
本文的其余部分从定义有限状态程序、时序逻辑及其解释的一些预备知识开始。第 3 节介
绍迁移 B¨uchi 自动机和时序逻辑公式的自动机构造。第 4 节给出了模型检验算法。论文以
一些结束语结束。
2 预备知识
假 设 AP 是 一 组 原 子 命 题 。 我 们 写 2
AP
映 射 集 AP→{False,True} , 2
2AP
映 射 集
2
AP
→{False,True}。我们可以注意到,2
AP
也可以像 AP 的子集的集合一样容易定义,2
2^AP
就
像由原子命题引出的命题公式集一样容易定义。有时我们会把 AP 的一个元素 p 当做一个
命题公式:∀y∈2
AP
p(y)≡(p∈y)。
有限状态程序 P 由以下组成:
- S 是有限状态集;
- 是一个迁移关系
- s0 是初始状态(s0∈S)。
直观地说,集合 S 表示系统可能进入的状态集合。关系→描述状态可用的操作和执行操作
后可能产生的状态迁移。AP 用于将原子属性与迁移关系相关联。在不丢失通用性的情况下
(就像在[16]中一样),可以向每个终端状态添加标记为{Dead}的循环迁移关系。在这种情况
下,每个状态都有一些启用的动作。P 的一次运行是状态的无限序列:
ρ= s0 x0 s1 x1 s2 x2…
使 得 对 于 每 一 个 j≥0:(s
j
, x
j
, s
j +1
)∈→ 。 我 们 称 迹 ρ 为 字 母 表 中 2
AP
的 无 限 字 ,
trace(ρ)=x0·x1·x2…
我们使用线性时序逻辑(LTL)作为我们的规范语言。它为程序的跟踪集(trace set)定义逻辑。
程序 P 满足一个线性时间性质,当且仅当程序 P 的每一条迹都满足 f。LTL 的形式化语法如
下所示。
1.每个原子命题 p∈AP 都是 LTL 公式。
2.如果 f 和 g 是 LTL 公式,那么¬f, f∧g, Xf, f∪g 也是如此。
对 LTL 公式的解释是一个在字母表 2
AP
上的无限字 σ= x0.x1.x2……。我们用标准符号 σ|= f
来表示无限字 σ 的 LTL 公式 f 的真值。我们写 σi 表示从 xi 开始的 σ 的后缀。关系式|=归纳
定义如下:
1. σ |= p if x0(p) for p ∈AP;
//有时我们会把 AP 的一个元素 p 当做一个命题公式:∀y∈2
AP
p(y)≡(p∈y)。这里表示 x0
在 p 中
2. σ |=¬f if ¬(σ |= f);
3. σ |= f ∧g if σ |= f and σ |= g;
4. σ |= Xf if σ1 |= f;
5. σ |= fUg if ∃i ≥0:σi |= g∧(∀j<i: σj |= f).
标准布尔运算符 true 和 false 也可用于构造 LTL 公式。我们也使用以下缩写:
Fϕ = trueUϕ, Gϕ = ¬F¬ϕ and fVg=¬(¬fU¬g).
备注 1 每个 LTL 公式都可以重写为等价的一元运算符¬仅应用于原子命题的 LTL 公式。在
下面,我们将只考虑这样的公式。
备注 2。程序也可以使用参数化迁移系统[2]构造。在这样的程序中,原子命题也可以与状
态联系起来。这个模型很有用,但是在为规范语言使用 LTL 公式时没有提供任何扩展:一个
状态的原子命题可以移动到它的所有输出迁移中。
3 表结构(tableau construction)
我们的目标是构建一个自动机,它能生成所有满足给定公式 f 的无限字。我们构建的自动
机是一个迁移 Buchi 自动机,与简单的 B¨uchi 自动机只有一组接受状态 [20]不同,迁移
B¨uchi 自动机有多组接收迁移。
正式的迁移 Buchi 自动机<Q,Acc,→,q0 >有以下组成部分:
- Q 是有限的状态集;
- Acc 是一个有限的接收条件(acception condition)集;
-→⊆ S ×2
2AP
×2
Acc
×S 是一个迁移关系;
- q0 是初始状态(q0∈Q)。
无限字 σ= x0.x1.x2…在字母表 2
AP
被迁移 Buchi 自动机接受,当且仅当存在一条无限路径:
该自动机构造与[9]中提出的结构非常相似。它也是基于 tableau 程序[25],[26]。图的节点
被一组公式标记,迁移是通过扩展时间运算符来获得的,以便区分必须立即是真的还是下
一个状态下必须是真的。用于此展开的基本断言有:
fUg= g +f ·X(fUg)
fVg= f ·g +g·X(fVg) //联想上课时提到的自动机
其中+是布尔“或”操作符以及·是布尔“与”运算符。
我们的自动机结构是基于一组布尔变量的符号计算,构造如下:
-每个原子命题是一个布尔变量,
-如果 f 是一个 LTL 公式,那么 r
f
是一个布尔变量,
-如果 fUg 是一个 LTL 公式,那么 a
fug
是一个布尔变量。
//a 的式子成立的时候表示当前时序不满足这个条件,具体看下面解释的部分
直观地说,对于一个无限的字 σ= x0·x1·x2…在字母表 2
AP
中,rf 对应于 f |=σ,
afUg 对应于(σ|= fUg)∧¬ (σ|= g)。布尔变量 rf 和 afUg 的基本恒等式如下:
//afUg 表示不满足 g 条件
利用基本恒等式,并给定一个 LTL 公式 f,变量 rf 可以表示为仅使用形式为 p、¬ p、ag 和
rXg 的变量的表达式,其中变量 p 是原子命题,g 是 f 的子公式。命题 1 是这一性质在一组
公式 F 中的应用。
命题 1.设 F 是一组公式∆(F)=∏
f
∈
F
rf 可以被扩展到形式:
剩余12页未读,继续阅读
qq_40174045
- 粉丝: 8
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0