合金:关于Int的事实等

时间:2014-03-29 09:17:32

标签: integer alloy

我最近在使用Alloy。 我可以这样说:

fact{
all i: Int | i >= 0 
}

我想说的是:Alloy使用的所有整数都应该是正数。 合金不会失败,但也不会给我实例。

问候

1 个答案:

答案 0 :(得分:2)

你现在不能这么说。你可以为整数指定的唯一范围(告诉Alloy哪个整数为"使用")是位宽(例如4 Int); Alloy然后总是使用该位宽内的所有整数(例如,对于4位的位宽,使用的整数是-8, ..., 7)。

如果您的模型中有一个Int类型的字段,您可以使用一个事实(如上所​​述)来限制其值:

sig S { i: Int }
fact  { all s: S | s.i >= 0 }