MODULE main
IVAR v1 :boolean;
VAR v2 : boolean;
SPEC NAME p1 := AG (v1&v2);
file ltlerror.smv: line 8: Property contains input variables:
At pages 24-25 of NuSMV 2.6 user manual, it's written:
[...] input variables cannot occur in:
[...]
Some specification kinds: CTLSPEC, SPEC, INVARSPEC, COMPUTE, PSLSPEC. For example:
IVAR i : boolean; VAR s : boolean; SPEC AF (i -> s) – this is NOT allowed LTLSPEC F (X i -> s) – this is allowed
Workarounds:
use LTL
:
MODULE main
IVAR
v1 : boolean;
VAR
v2 : boolean;
LTLSPEC NAME p1 := G (v1 & v2);
Declare v1
as a normal variable, but use it as an input variable. To do this, do not impose any constraint on the initial and future values of v1
, i.e. do not write init(v1) :=
or next(v1) :=
or equivalent constraints.