Go to the Next or Previous section, the Detailed Contents, or the FS(E)L Home Page.
C.3.3 Ism objects
The ism objects encapsulate state-machines. They are produced by the
compile
method of a session. The first group of supported
operations build hypotheses which can be tested. They all return the
name of the new hypothesis.
ism refinedby ism model
-
Builds a hypothesis which checks for refinement between the two
state-machines in the model described by the flag. The same model must
be used to compile both the machines and to perform the check.
ism deadlockfree model
-
Builds a hypothesis which checks that the state-machine cannot
deadlock. The same model must be used to compile the machine and perform
the check (the traces model is not permitted.)
ism deterministic model
-
Builds a hypothesis which checks that the state-machine is
deterministic. The same model must be used to compile the machine and
perform the check (the traces model is not permitted.)
ism livelockfree
-
Builds a hypothesis which checks that the state-machine cannot
livelock. The machine must have been compiled in the
failures-divergences model.
The second group of commands allow simple enumeration of a
state-machine.
ism transitions
-
Returns the transitions of the state-machine as a list of three-integer
lists. Each triple contains the source and destination state within the
machine, separated by the number of an event which links them. The
machine is initially in state 0.
ism acceptances
-
Returns the minimal acceptances of the state-machine as a list of list
of list of event numbers, one for each state.
ism divergences
-
Returns a list of 0/1 values indicating whether each state in the
machine is divergent. (1 indicates that it is divergent.)
ism event number
-
Returns the name of the event corresponding the the given number.
ism compress method model
-
Returns a new ism which is the result of compressing the existing
machine using the named method. The compressions available are
precisely those which can be enabled by transparent definitions (for
example,
normal
calls the normalisation routine.) The model may
be specified for those compressions where it is signicant, in which case
it must match the model used to compile the machine.
The final group of commands allow decomposition of a state-machine as an
operator tree.
ism operator
-
Returns the name of the outermost operator. Current names include
"parallel", "link", "sharing", "rename" and "hide". If a machine cannot
be decomposed then "leaf" is returned. Code using this call should treat
all unrecognised names as if they were "leaf"; far more operator names
are used internally than are documented here.
Given a recognised operator name, the component machines and wiring sets
can be extracted using the next two commands.
ism parts
-
Returns the sub-machines which make up this one (as a list of ism
names.) The three parallel operators both return two machine names
corresponding to their left and right process arguments. Hiding and
renaming return the single machine name corresponding to their process
argument.
ism wiring
-
Return a list of lists of event numbers representing the event sets
associated with the operator.
- `share'
-
A single list is returned corresponding to the synchronisation set.
This set currently includes "_tick".
- `hide'
-
A single list is returned corresponding to the set of events being hidden.
- `parallel'
-
Two lists are returned corresponding to the left and right
synchronisation set. Both sets currently include "_tick".
- `link'
-
Two lists of the same length are returned. The corresponding events from
each list are to be synchonized and hidden.
- `rename'
-
Two lists of the same length are returned. Any occurrence of events in
the first list is to be replaced by the corresponding event(s) in the
second.
Go to the Next or Previous section, the Detailed Contents, or the FS(E)L Home Page.