NuSMV语法没有非常详细的介绍其中的语法,特别是对于模块调用的写法。
本人在使用NuSMV的时候遇到很多问题,在此书写出来,以便后来人少走弯路。
@1 在func1中调用模块func2(如下),但是经调试,总是提示语法错误(重复定义i,j)。
原来,i,j是作为func2的输入变量,就不能在func1中使用next等表达式。
Module func1
VAR
i : -100..100
j : -100..100
procFunc : func2(i,j)
ASSIGN
next(i) := case
.....
解决方式:
添加新变量。如下
Module func1
VAR
i : -100..100
j : -100..100
fvar: -100..100
svar: -100..100
procFunc : func2(fvar,svar)
ASSIGN
next(i) := case
.....