基于多值到经典model checking归约方法的Multi-valued model checking工具查询
可用工具及使用说明
1. nuXmv/NuSMV
- 是目前工业界和学术界应用最广的符号模型检测工具,原生支持多值CTL/LTL验证,核心采用多值结构到二值结构的上下近似归约方法,完全复用经典BDD/SAT求解能力,无需手动实现归约逻辑。
- 自带大量多值验证示例,以下是三值LTL验证的最小示例:
MODULE main VAR state : {s0, s1, s2}; p : 0..2; -- 三值变量:0=假,1=未知,2=真 ASSIGN init(state) := s0; next(state) := case state = s0 : {s1, s2}; TRUE : state; esac; p := case state = s0 : 1; state = s1 : 2; state = s2 : 0; esac; LTLSPEC F (p = 2) -- 验证多值LTL属性:最终p为真
- 使用方法:运行时添加
-mv参数即可触发多值归约验证流程,工具会自动返回多值验证结果。
2. MVMC (Multi-Valued Model Checker)
- 专门面向多值模型检测的开源工具,完全基于经典SPIN模型检测器的内核实现,支持任意有限格上的多值逻辑验证,核心逻辑就是将多值验证任务归约为多个经典二值验证任务并行求解。
- 工具自带覆盖三值、四值、有限格等不同场景的完整使用示例,用户仅需定义多值原子命题和待验证属性,归约过程全部由工具自动完成。
3. SpinX
- 是SPIN模型检测器的多值扩展版本,同样采用多值到经典的归约方案,支持多值Promela语法,可直接复用SPIN的全部优化能力,适合对并发系统做多值安全性、活性验证,官方文档附带有完整的多值验证示例代码。
上述工具的归约逻辑均对用户透明,无需手动实现归约算法,仅需按照工具文档定义多值变量和属性公式即可完成多值模型检测任务。
内容的提问来源于stack exchange,提问作者Ghalya batool
相关产品推荐
相关产品推荐

