我正在使用nuXmv在我正在开发的工作上,我遇到了使用Reals的麻烦。NuXMV使用实数
Supose我有计划:
MODULE main
VAR
t : Real;
r : 0..5000;
ASSIGN
init(t):=0;
init(r):=0;
TRANS
case
r>=500 :next(r)=0 & next(t)=0 & r<600;
r<500 : next(t)-t>0 -> next(r)=r+t & next(r)<600;
esac;
SPEC
AG r<=600
在这个例子中,我想证明的属性是R总是小于或等于600 请注意,这只是没有一个说明性的例子具体的意义。
现在的COMAND行I型
$ nuXmv <fileName>
为了运行程序,并检查是否取得财产,但出现此消息
“在这个版本中nuXmv,批处理模式的不适用于包含无限域变量的模型。“
所以我发现的问题是使用Real
变量t
。 有没有办法指定一个真实值的范围,就像我在变量r
(这是Integer类型)上使用的范围? 我知道如果存在可以解决问题的问题,那么我该如何在我的程序中使用Reals?
预先感谢您的时间。
优秀的解释上怎么运行的。实际上,我对于答案的完美程度无言以对。 –
@DanielSoares很高兴帮助,并欢迎S.O. –