Event-based synchronous product
The event-based synchronous product takes one or more plant or requirement automata, and computes the synchronous product. Synchronous product means events on edges can only be taken if all automata with that event in their alphabet can take an edge with the same event at that time. This tool essentially computes the state space.
The tool takes a .cif
file containing at least one automaton, and produces a new .cif
file with the product of the automata. In addition, the general event-based restrictions apply as well.
If the kinds of the source automata are all the same, the resulting product automaton is of that kinds as well. Otherwise, the product automaton has unknown kind.
Starting the synchronous product tool
The tool can be started in the following ways:
-
In Eclipse, right click a
.cif
file in the Project Explorer tab or Package Explorer tab and choose . -
In Eclipse, right click an open text editor for a
.cif
file and choose . -
Use the
cifprod
tool in a ToolDef script. See the scripting documentation and tools overview page for details. -
Use the
cifprod
command line tool.
Options
Besides the general application options, this application has the following options:
-
Input file: The absolute or relative local file system path to the input CIF specification.
-
Output file: The absolute or relative local file system path to the output CIF specification. If not specified, defaults to the input file path, where the
.cif
file extension is removed (if present), and a_product.cif
file extension is added. Theproduct
part of the default extension depends on the Result name option. -
Result name: The name to use for the product automaton. If not specified, defaults to
product
. Also affects the Output file option. -
Add state annotations: Add state annotations to the locations of the automaton in the output CIF file. This option is enabled by default. If the output CIF file has an automaton with only a single non-initial location, then the location does not get a state annotation, regardless of whether the option is enabled or not.