Multiple initial statesΒΆ
If a variable is not initialized, its initial value will be chosen
nondeterministically. Then, each instance of a system family has multiple
initial states. To constrain the set of initial states, an init block can
be specified. The init block contains a Boolean expression over the
variables in the model. Only those states for which this expression evaluates
to true are initial states. Consider the following example:
root feature
    modules my_module;
endfeature
module my_module
    x : bool;
    y : [-1 .. 1];
endmodule
init
    x => y = 0
endinit
Since both x and y are left uninitialized, their value is chosen
nondeterministically. However, if x = true then y = 0 because all
initial states must satisfy the expression given in the init block.