定时SDL系统的同步闭合用于模型检查
1. 引言
模型检查在反应式系统的验证中被广泛接受,但它面临着臭名昭著的状态空间爆炸问题。为了缓解这一问题,人们发明了许多技术,如偏序约简和抽象。标准的模型检查器无法直接处理开放系统,通常需要添加一个环境进程来构建一个封闭模型。然而,为了应对状态空间爆炸问题,如何封闭开放系统需要仔细考虑。
在对SDL(规范与描述语言)程序进行模型检查时,由于其异步消息传递通信模型,输入队列中消息的所有组合会导致组合爆炸,这一问题尤为突出。一个理想的解决方案是构建一个与系统进行同步通信的环境。本文研究了一类环境进程,对于这类进程,异步通信方案可以安全地替换为同步通信方案。不过,这种替换需要对环境的行为施加相当严格的限制,而离散时间语义可以部分缓解这些限制。
此外,消息携带的数据通常来自无限数据域,为了进行数据抽象,我们将与环境交换的数据浓缩为一个单一的抽象值⊤⊤,并使用数据流分析来检测受系统与环境之间数据传递影响的变量和定时器实例,并将其移除。基于数据流分析的结果,系统S被转换为一个封闭系统S♯,在轨迹方面,S♯比原始系统展示出更多的行为。对于无Next的LTL公式,我们可以得到所需的属性保留:如果S♯|= ϕ,则S |= ϕ。
2. 语义
我们以SDL作为源语言,操作模型基于具有顶级并发的异步通信状态机。通信通过通道进行,每个程序都有一个固定的通道名称集合Chan,该集合被划分为输入通道集合Chani和输出通道集合Chano。
一个程序Prog是有限个进程的并行组合Πn i=1Pi 。一个进程P由元组 (P, (in, out), Var, Loc, σinit, Edg) 描述,其中 (in,
超级会员免费看
订阅专栏 解锁全文
3万+

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



