МОДУЛЬ основной
IVAR v1: логическое значение;
VAR v2 : логическое значение;
ИМЯ СПЕЦИФИКАЦИИ p1 := AG (v1&v2);
файл ltlerror.smv: строка 8: свойство содержит входные переменные:
МОДУЛЬ основной
IVAR v1: логическое значение;
VAR v2 : логическое значение;
ИМЯ СПЕЦИФИКАЦИИ p1 := AG (v1&v2);
файл ltlerror.smv: строка 8: свойство содержит входные переменные:
На страницах 24-25 руководства пользователя NuSMV 2.6 написано:
[...] входные переменные не могут встречаться в:
[...]
Некоторые виды спецификаций: CTLSPEC, SPEC, INVARSPEC, COMPUTE, PSLSPEC. Например:
IVAR i : boolean; VAR s : boolean; SPEC AF (i -> s) – this is NOT allowed LTLSPEC F (X i -> s) – this is allowed
Обходные пути:
используйте LTL
:
MODULE main
IVAR
v1 : boolean;
VAR
v2 : boolean;
LTLSPEC NAME p1 := G (v1 & v2);
Объявите v1
как обычную переменную, но используйте ее как входную переменную. Для этого не накладывайте никаких ограничений на начальное и будущее значения v1
, т.е. не пишите init(v1) :=
или next(v1) :=
или эквивалентные ограничения.