UP | HOME

AUTCROSS

Table of Contents

NAME

autcross - cross-compare tools that process automata

SYNOPSIS

autcross [OPTION...] [COMMANDFMT...]

DESCRIPTION

Call several tools that process automata and cross-compare their output to detect bugs, or to gather statistics. The list of automata to use should be supplied on standard input, or using the -F option.

Input:

-F, --file=FILENAME

process automata from FILENAME

Specifying tools to call:

--list-shorthands

list availabled shorthands to use in COMMANDFMT

-t, --tool=COMMANDFMT

register one tool to call

-T, --timeout=NUMBER

kill tools after NUMBER seconds

COMMANDFMT should specify input and output arguments using the following character sequences:

%%

a single %

%H,%S,%L

filename for the input automaton in (H) HOA, (S) Spin’s neverclaim, or (L) LBTT’s format

%M, %[val]M

the name of the input automaton, with an optional default value

%O

filename for the automaton output in HOA, never claim, LBTT, or ltl2dstar’s format

Parsing of automata:

--trust-hoa=BOOL

If false, properties listed in HOA files are ignored, unless they can be easily verified. If true (the default) any supported property is trusted.

autcross behavior:

--fail-on-timeout

consider timeouts as errors

--ignore-execution-failures

ignore automata from translators that return with a non-zero exit code, but do not flag this as an error

--language-complemented

expect that each tool complements the input language

--language-preserved

expect that each tool preserves the input language

--no-checks

do not perform any sanity checks

--stop-on-error

stop on first execution error or failure to pass sanity checks (timeouts are OK)

Statistics output:

--csv[=[>>]FILENAME]

output statistics as CSV in FILENAME or on standard output (if ’>>’ is used to request append mode, the header line is not output)

--omit-missing

do not output statistics for timeouts or failed translations

Simplification level (for complementation):

--high

all available optimizations (slow, default)

--low

minimal optimizations (fast)

--medium

moderate optimizations

Output options:

--color[=WHEN]

colorize output; WHEN can be ’never’, ’always’ (the default if --color is used without argument), or ’auto’ (the default if --color is not used)

-q, --quiet

suppress all normal output in absence of errors

--save-bogus=[>>]FILENAME

save automata for which problems were detected in FILENAME

--verbose

print what is being done, for debugging

If an output FILENAME is prefixed with ’>>’, it is open in append mode instead of being truncated.

Miscellaneous options:

--help

print this help

--version

print program version

Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.

Exit status:

0

everything went fine (without --fail-on-timeout, timeouts are OK)

1

some tools failed to output something we understand, or failed sanity checks (statistics were output nonetheless)

2

autcross aborted on error

ENVIRONMENT VARIABLES

SPOT_TMPDIR, TMPDIR

These variables control in which directory temporary files (e.g., those who contain the input and output when interfacing with translators) are created. TMPDIR is only read if SPOT_TMPDIR does not exist. If none of these environment variables exist, or if their value is empty, files are created in the current directory.

SPOT_TMPKEEP

When this variable is defined, temporary files are not removed. This is mostly useful for debugging.

OUTPUT DATA

The following columns are output in the CSV files.
input.source

Location of the input automaton fed to the tool.

input.name

Name of the input automaton, if any. This is supported by the HOA format.

input.ap,output.ap,

Number of atomic proposition in the input and output automata.

input.states,output.states

Number of states in the input and output automata.

input.edges,output.edges

Number of edges in the input and output automata.

input.transitions,output.transitions

Number of transitions in the input and output automata.

input.acc_sets,output.acc_sets

Number of acceptance sets in the input and output automata.

input.scc,output.scc

Number of strongly connected components in the input and output automata.

input.nondetstates,output.nondetstates

Number of nondeterministic states in the input and output automata.

input.nondeterministic,output.nondetstates

1 if the automaton is nondeterministic, 0 if it is deterministic.

input.alternating,output.alternating

1 if the automaton has some universal branching, 0 otherwise.

exit_status, exit_code Information about how the execution of the tool went. exit_status is a string that can take the following values:

"ok"

The tool ran succesfully (this does not imply that the produced automaton is correct) and autcross could parse the resulting automaton. In this case exit_code is always 0.

"timeout"

The tool ran for more than the number of seconds specified with the --timeout option. In this case exit_code is always -1.

"exit code"

The tool terminated with a non-zero exit code. exit_code contains that value.

"signal"

The tool terminated with a signal. exit_code contains that signal’s number.

"parse error"

The tool terminated normally, but autcross could not parse its output. In this case exit_code is always -1.

"no output"

The tool terminated normally, but without creating the specified output file. In this case exit_code is always -1.

time

A floating point number giving the run time of the tool in seconds. This is reported for all executions, even failling ones.

REPORTING BUGS

Report bugs to <spot@lrde.epita.fr>.

COPYRIGHT

Copyright © 2023 Laboratoire de Recherche de l’Epita (LRE) License GPLv3+: GNU GPL version 3 or later.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO

randaut(1), genaut(1), autfilt(1), ltlcross(1)