Я описываю некоторые модели на языке Alloy. Чтобы описать конечный автомат, я предоставил несколько строк кода:
sig FSA_state {
transitions: some FSA_state,
initial: lone InitialState
}
sig InitialState {}
fact i {
all f: FSA_state | #(f.transitions) <= 0
}
pred show {
}
run show for 5 but 1 InitialState
Теперь я пытаюсь понять, почему он делает более нуля переходов в одном состоянии. С помощью инструмента "Эвалюатор" я обнаружил, что некоторый мир имеет отрицательную кардинальность при переходах множеств, как это возможно (множество не может иметь меньше нуля элементов)? Инструкция, которую я использовал в Оценщике, это #(FSA_state.transitions)