Initialization of the CIF specification
CIF supports discrete variables with multiple potential initial values, as well as discrete variables with an arbitrary initial value, and input variables without an explicit value. Furthermore, CIF supports automata with multiple potential initial locations. The simulator however, needs to know how to initialize the specification. The initial values of discrete variables and input variables, and the initial locations of automata, can be specified using the CIF specification initialization option (Simulator category). Initialization can be provided using the option, per discrete variable, input variable or automaton.
For discrete variables and input variables, initialization is of the form var:value
, where var
is the absolute name of a discrete variable or input variable, and value
is a CIF literal that represents a valid initial value for the variable. Providing an initialization with a function type or a distribution type, is not supported.
For an automaton, initialization is of the form aut:loc
, where aut
is the absolute name of an automaton, and loc
is the name of a location of that automaton. Providing an initialization for an automata with only one nameless location, is not supported.
It is not allowed to provide multiple initializations for a single variable or automaton.
If insufficient initializations are provided, variables and automata may not be initialized. That is, the simulator may not be able to choose between the multiple potential initial values or locations. The simulator will report such problems, indicating the specification is unsupported without additional or alternative initializations.
It is also possible that initializations in the CIF specification itself are incomplete or conflicting, the provided initializations are conflicting, or their combination is conflicting. Furthermore, initializations may be provided for values or locations that are not potential initial values or locations. In all such cases, initialization fails. The simulator will report such problems, providing detailed information about what caused the initialization failure.