基于Alloy的时态逻辑模型检查与多播密钥管理协议分析
时态逻辑模型检查在Alloy中的应用
在模型检查领域,我们致力于使用Alloy来检查CTLFC时态逻辑规范。以下是相关的代码示例:
1 assert MC1{
2
let R=bound[sigma ,l.p]|
3
S0 in (*R).( loop [R])}
4 check MC1 for
exactly 4 S
上述代码实现了对EGp的通用模型检查。另外,还有用于存在性模型检查的代码:
1 pred
MC2 []{
2
let R=bound[sigma ,l.p]|
3
S0 in (*R).(l.q)}
4 run MC2 for
exactly 4 S
该代码用于对pEUq进行存在性模型检查。
为了验证我们方法的有效性,我们进行了多个实验。使用了来自不同领域的四个示例:
1. 无类型lambda演算的语义
2. Jackson的地址簿
3. 呼叫等待和呼叫转移之间的特征交互
4. 交通灯控制器的模型检查
这些模型都满足其时态规范。我们为CTL和CTLFC设计的参数化Alloy模块,对用户隐藏了Alloy中模型检查的细节,使得时态规范可以顺利添加到模型中。
实验在一台配备Intel Core 2 Due 2.40 GHz处理器、运行Ubuntu 10.04系统且用户空间内存最多为3G的机器上进行,使用了Alloy Analyzer 4.2和MiniSat SAT求解器。以下是实验结果表格:
| 模型 |
超级会员免费看
订阅专栏 解锁全文
15

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



