首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用变量而不是整数时nuXmv语法错误

使用变量而不是整数时nuXmv语法错误
EN

Stack Overflow用户
提问于 2019-11-22 15:58:39
回答 1查看 259关注 0票数 1

我在muXmv中有一个模型,在这个模型中,我用一系列的值初始化-

变量x: 0..100;赋值init(x) := 10.50;

这个很好用。

但是,当我使用变量而不是值时,

分配init(x) := LB..UB;定义LB := 10;UB := 50;

它会引发语法错误-

第14行: at token "..":语法错误

第14行:解析器错误

不知道我哪里出了问题?

还有更好的方法来声明nuxmv中的常量吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-24 13:03:40

定义不一定是常量,它只是表达式的名称(其值在每次转换后可能发生变化)。(例如)

代码语言:javascript
复制
MODILE main()
VAR
    x : 0..100;
    y : 0..100;
DEFINE
    sum := x + y;

...

我不知道为什么NuSMV/nuXmv的语法不允许使用一对标识符而不是一对常量来写入间隔。

另一种选择是:

代码语言:javascript
复制
MODULE main()
VAR
    x : 0..100;

ASSIGN
  init(x) := INTERVAL;

DEFINE
  INTERVAL := 10 .. 50;

另一种选择是使用约束样式方法:

代码语言:javascript
复制
MODULE main()
VAR
    x : 0..100;

DEFINE
    LB := 10;
    UB := 50;

INIT
    LB <= x & x <= UB;

如果您真的发现自己遇到了许多常量值的问题,可以选择编写一个通用模板模型,然后使用正则表达式+脚本工具自动生成所需的各种具体模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58997763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档