я недавно работаю с Alloy. Могу ли я сказать что-то вроде:
fact{
all i: Int | i >= 0
}
Я хочу сказать: все Integer, которые использует Alloy, должны быть положительными. Alloy не подводит, но и экземпляров мне не дают.
Привет
я недавно работаю с Alloy. Могу ли я сказать что-то вроде:
fact{
all i: Int | i >= 0
}
Я хочу сказать: все Integer, которые использует Alloy, должны быть положительными. Alloy не подводит, но и экземпляров мне не дают.
Привет
Вы не можете в настоящее время сказать, что. Единственная область, которую вы можете указать для целых чисел (которая сообщает Alloy, какие целые числа «использовать»), — это разрядность (например, 4 Int
); Затем Alloy всегда использует все целые числа в пределах этой битовой ширины (например, для битовой ширины 4 используются целые числа -8, ..., 7
).
Если в вашей модели есть поле типа Int, вы можете использовать факт (как вы сказали выше), чтобы ограничить его значения:
sig S { i: Int }
fact { all s: S | s.i >= 0 }