GENAUT(1)

NAME
genaut - generate ω-automata from scalable patterns

SYNOPSIS
genaut [OPTION...]

DESCRIPTION

Generate ω-automata from predefined patterns.

  Pattern selection:

--cycle-log-nba=RANGE
    A cyclic NBA with N*N states and log(N) atomic propositions, that should be simplifiable to a cyclic NBA with N states.

--cycle-onehot-nba=RANGE
    A cyclic NBA with N*N states and N atomic propositions, that should be simplifiable to a cyclic NBA with N states.

--cyclist-proof-dba=RANGE
    A DBA with N+2 states that should be included in cyclist-trace-nba=B.

--cyclist-trace-nba=RANGE
    An NBA with N+2 states that should include cyclist-proof-dba=B.

--ks-nca=RANGE
    A co-Büchi automaton with 2N+1 states for which any equivalent deterministic co-Büchi automaton has at least 2^N/(2N+1) states.

--l-dsa=RANGE
    A deterministic Streett automaton with 4N states with no equivalent deterministic Rabin automaton of less than N! states.

--l-nba=RANGE
    A Büchi automaton with 3N+1 states whose complementary Streett automaton needs at least N! states.

--m-nba=RANGE
    An NBA with N+1 states whose determinization needs at least N! states.

RANGE may have one of the following forms: 'INT', 'INT..INT', or '..INT'. In the latter case, the missing number is assumed to be 1.

  Output format:

-8, --utf8
    enable UTF-8 characters in output (ignored with --lbtt or --spin)

--check[=PROP]
    test for the additional property PROP and output the result in the HOA format (implies -H). PROP may be some prefix of 'all' (default), 'unambiguous', 'stutter-invariant', 'stutter-sensitive-example', 'semi-determinism', or 'strength'.

-d, --dot[=1|a|A|b|B|c|C(COLOR)|e|E|f(FONT)|h|i(ID)|k|K|n|N|o|r|R|s|t|u|v|y|+INT|<INT|#]
    GraphViz's format. Add letters for (1) force numbered states, (a) show acceptance condition (default), (A) hide acceptance condition, (b) acceptance sets as bullets, (B) bullets except for Büchi/co-Büchi automata, (c) force circular nodes, (C) color nodes with COLOR, (d) show origins when known, (e) force elliptic nodes, (E) force rEctangular nodes, (f(FONT)) use FONT, (g) hide edge labels, (h) horizontal layout, (i) or (i(GRAPHID)) add IDs, (k) use state labels when possible, (K) use transition labels (default), (n) show name, (N) hide name, (o) ordered transitions, (r) rainbow colors for acceptance sets, (R) color acceptance sets by Inf/Fin, (s) with SCCs, (t) force transition-based acceptance, (u) hide true states, (v) vertical layout, (y) split universal edges by color, (+INT) add INT to all set numbers, (<INT) display at most INT states, (#) show internal edge numbers

-H, --hoaf[=1.1|b|i|k|l|m|s|t|v]
    Output the automaton in HOA format (default). Add letters to select (1.1) version 1.1 of the format, (b) create an alias basis if >=2 AP are used, (i) use implicit labels for complete deterministic automata, (s) prefer state-based acceptance when possible [default], (t) force transition-based acceptance, (m) mix state and transition-based acceptance, (k) use state labels when possible, (l) single-line output, (v) verbose properties

--lbtt[=t]
    LBTT's format (add =t to force transition-based acceptance even on Büchi automata)

--name=FORMAT
    set the name of the output automaton

-o, --output=FORMAT
    send output to a file named FORMAT instead of standard output. The first automaton sent to a file truncates it unless FORMAT starts with '>>'.

-q, --quiet
    suppress all normal output

-s, --spin[=6|c]
    Spin neverclaim (implies --ba). Add letters to select (6) Spin's 6.2.4 style, (c) comments on states

--stats=FORMAT, --format=FORMAT
    output statistics about the automaton

  Any FORMAT string may use the following interpreted sequences:

%%  a single %

%a  number of acceptance sets

%c, %[LETTERS]c
    number of SCCs; you may filter the SCCs to count using the following LETTERS, possibly concatenated: (a) accepting, (r) rejecting, (c) complete, (v) trivial, (t) terminal, (w) weak, (iw) inherently weak. Use uppercase letters to negate them.

%d  1 if the output is deterministic, 0 otherwise

%e, %[LETTER]e
    number of edges (add one LETTER to select (r) reachable [default], (u) unreachable, (a) all).

%F  the name of the pattern

%g, %[LETTERS]g
    acceptance condition (in HOA syntax); add brackets to print an acceptance name instead and LETTERS to tweak the format: (0) no parameters, (a) accentuated, (b) abbreviated, (d) style used in dot output, (g) no generalized parameter, (l) recognize Street-like and Rabin-like, (m) no main parameter, (p) no parity parameter, (o) name unknown acceptance as 'other', (s) shorthand for 'lo0'.

%h  the automaton in HOA format on a single line (use %[opt]h to specify additional options as in --hoa=opt)

%L  the argument of the pattern

%l  serial number of the output automaton (0-based)

%m  name of the automaton

%n  number of nondeterministic states in output

%p  1 if the output is complete, 0 otherwise

%r  wall-clock time elapsed in seconds (excluding parsing)

%R, %[LETTERS]R
    CPU time (excluding parsing), in seconds; add LETTERS to restrict to (u) user time, (s) system time, (p) parent process, or (c) children processes.

%s, %[LETTER]s
    number of states (add one LETTER to select (r) reachable [default], (u) unreachable, (a) all).

%t, %[LETTER]t
    number of transitions (add one LETTER to select (r) reachable [default], (u) unreachable, (a) all).

%u, %[e]u
    number of states (or [e]dges) with universal branching

%u, %[LETTER]u
    1 if the automaton contains some universal branching (or a number of [s]tates or [e]dges with universal branching)

%w  one word accepted by the output automaton

%x, %[LETTERS]x
    number of atomic propositions declared in the automaton; add LETTERS to list atomic propositions with (n) no quoting, (s) occasional double-quotes with C-style escape, (d) double-quotes with C-style escape, (c) double-quotes with CSV-style escape, (p) between parentheses, any extra non-alphanumeric character will be used to separate propositions

  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.

BIBLIOGRAPHY
Prefixes used in pattern names refer to the following papers:

ks  D. Kuperberg, M. Skrzypczak: On Determinisation of Good-for-Games Automata. Proceedings of ICALP'15.

l   C. Löding: Optimal Bounds for Transformations of ω-Automata. Proceedings of FSTTCS'99.

m   M. Michel: Complementation is more difficult with automata on infinite words. CNET, Paris (1988). Unpublished manuscript.

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

COPYRIGHT
Copyright © 2025 by the Spot authors, see the AUTHORS File for details. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
autfilt(1), genltl(1), randaut(1), randltl(1)