MAF : Reference (Usage) : Standard options

Standard options

Many command line options are present in many, most, or even every, individual MAF program, and have the same meaning wherever they occur. To avoid repeating them over and over again, they are listed here. Some of these options are "compatibility" options. This means that MAF programs accept them as valid options, but do nothing with them other than to parse them. These are options that are used in KBMAG but which are either not needed or not yet implemented in MAF.

[loglevel] -v

The verbose option. Status information on progress of programs is sent to stdout. In general status information is generated approximately once per second. -v is on by default, but is provided as an explicit option for compatibility with KBMAG. -verbose, -vv and -v all usually have the same effect. The status information can often give you a good idea as to whether the program you are running is likely to succeed or not.


Status information is only sent to stdout at significant points in the execution of programs. There is no "comfort output" to indicate that a lengthy task is proceeding normally. Specifying -quiet makes the level of output similar to what is generated by KBMAG without -v, though the detailed diagnostics are (of course) different.


No status information at all is produced. Note that there is generally no need to use this option, even if you are sending the program's "proper" output to stdout and using this as the input to another program, because in this case all diagnostic information will be prefixed with "#" characters, so that if the other program is expecting GAP format input it will ignore the diagnostics as comments.

[compatibility] -fKBMAG uses this to modify the operation of functions that build and minimise FSA. It is possible that this option will be implemented in MAF in future.

KBMAG uses these to control the size of "hash tables". In MAF hash tables are adjusted automatically.

-ip d
-ip s

KBMAG uses these options to specify the expected format of an input FSA. MAF will happily process an FSA in any format and does not need to be told in advance what format it is getting.

[format] -dense or -op d
-sparse or -op s

In programs that generate FSA one of these options can be used to specify the format in which the transition table is stored in output files. -dense or -op d selects "dense" format, and -sparse or -op s selects "sparse" format. MAF usually uses dense format for one-variable automata, and sparse format for two-variable automata, but this is not always the case. Neither format is particularly legible to humans. Sparse format is perhaps marginally easier to read, especially for FSA with many possible transitions from each state, but dense format perhaps gives a better subjective impression of what the FSA is like. The printing format has no necessary connection with the in memory format of the FSA.

It is not advisable to use these options in automata itself, and particularly not -dense/-op d because it applies to all the automata generated: MAF does not support the various variations on "-op" present in KBMAG. You can easily change the format of an FSA later on using fsaprint.

-csn or -comment

In programs that generate FSA this option can be used to request that the transition table is output with comments indicating the state number to which the each set of transitions applies. MAF comments every fifth state, with the comment appearing as a separate line before the transitions. This improves the readability of FSA files.


In programs that generate FSA the transition table is output with comments indicating whether the state is initial or accepting, and if not the shortest path from an initial state and to an accepting state is shown.


In programs that generate FSA the transition table of product FSA is annotated with comments which make it easier for a human to read the transition table. Usually you will only want to use either of the annotation options with the program fsaprint since they increase the size of output files considerably.

coset systems-cos

This option tells MAF utilities that use a rewriting system as their input file to expect a subgroup suffix as an additional command line argument, and to generate or open a coset system instead of an input file for the group or monoid.

Note that the subgroup suffix is not a parameter of this option, but a separate argument, so that a command line such as automata -cos sub1 group will not do what you want. Instead you should put automata -cos group sub1, or if you prefer automata group -cos sub1. Whenever you use the -cos option without specifying a subgroup suffix the subgroup suffix is assumed to be simply sub. However, you cannot always omit it, unless you put the -cos option after any parameter that might be interpreted as a subgroup suffix. For example in the command line reduce groupname -cos "a^10*b" "a^10*b" would be erroneously interpreted as the subgroup suffix, whereas in the command line reduce groupname "a^10*b" -cos it will be correctly interpreted as a word to be reduced.

For more information refer to Coset system filenames

-i | input file-i | input file

Whenever you see the text -i | input file in a program usage summary, it means that the program can either take its input from a file, in which case you replace input file by a suitable filename, or it can take its input from stdin, in which case you must specify -i; in this case the input will normally come from another MAF program's stdout. You cannot use the -i option more than once on any command line, and you can only use it in place of the filename next to which it is shown in the program description, and you cannot use it at all if it is not described explicitly in the usage information for the program. On command lines, the -i option must come before where MAF would be expecting the relevant filename. MAF will usually notice, and flag as a usage error, if you have tried to use the -i option too late.

Refer to MAF: Reference: Input, output, piping and redirection for further information about using this option.

output file[-o | output file]

MAF utilities that generate only one output file, using only one file as input, send output to a filename based on the input file name by default. MAF uses the following scheme consistently in all utilities that produce only one file from a single input file:

  • If the -o option is specified, output is sent to stdout and diagnostic output is modified so that all diagnostic lines are preceded by #.
  • If no output filename is given then a filename is generated using the input file name and a suffix specific to the utility, in a scheme similar to KBMAG.
  • Otherwise the output filename given is treated as a complete filename.

Refer to MAF Reference: Input, output, piping and redirection for further information about using this option.

[output file]

Some MAF utilities generate only a single output file, but the input is taken from two or more input files, so that there is no obvious way to assign a default output filename. In such cases the utility sends its output to stdout by default. Most of the time you will want to specify an explicit filename to send the output to instead.

[reduction method] -cosets

Some MAF utilities require an automaton that can perform word reduction to have been previously computed. Generally these utilities will select the best available automaton for the purpose: they will select an automaton than solves the word problem in preference to a provisional automaton, and if more than one such automaton is available they will select the one for which word reduction is expected to be fastest. The automata are ranked as indicated by the order of the command line options in the box on the left. Sometimes you might want to specify the reduction method explicitly. For example, it sometimes happens that the diff1c word-difference machine is much smaller than the multipliers or the other word difference machines, and that reduction using it is quite fast.

For groups, the options -dgm and -gm are equivalent, but for coset systems -dgm specifies reduction with the determinised multiplier and -gm with the MIDFA multiplier. More information is available from the MIDFA multiplier, because when that is used the subgroup element which makes the coset equation between the word and its coset reduction true can be found, either as a G-word, or, when the initial states have H-labels, as an H-word.

Only one reduction method should be specified, but if more than one is, then the last option is used.