* doc/org/autfilt.org, doc/org/csv.org, doc/org/dstar2tgba.org, doc/org/genltl.org, doc/org/ioltl.org, doc/org/ltl2tgba.org, doc/org/ltl2tgta.org, doc/org/ltlcross.org, doc/org/ltlfilt.org, doc/org/ltlgrind.org, doc/org/oaut.org, doc/org/randaut.org, doc/org/randltl.org, doc/org/satmin.org, doc/org/tools.org: Here.
5.3 KiB
autfilt
The autfilt tool can filter, transform, and convert a stream of automata.
Conversion between formats
autfilt can read automata written in the Hanoi Omega Automata
Format, as Spin never claims, or using LBTT's format. Automata in
those formats (even a mix of those formats) can be concatenated in the
same stream, autfilt will process them in batch.
The output format can be controlled using the common output options
(like --spin, --lbtt, --dot, --hoaf…).
cat >example.hoa <<EOF
HOA: v1
States: 1
Start: 0
AP: 1 "p0"
Acceptance: 1 Inf(0)
--BODY--
State: 0
[0] 0 {0}
[!0] 0
--END--
EOF
autfilt example.hoa --dot
digraph G {
0 [label="", style=invis, height=0]
0 -> 1
1 [label="0"]
1 -> 1 [label="p0\n{0}"]
1 -> 1 [label="!p0"]
}
The --spin options implicitly requires a degeneralization:
autfilt example.hoa --spin
never {
accept_init:
if
:: ((p0)) -> goto accept_init
:: ((!(p0))) -> goto T0_S2
fi;
T0_S2:
if
:: ((p0)) -> goto accept_init
:: ((!(p0))) -> goto T0_S2
fi;
}
autfilt example.hoa --lbtt
1 1t 0 1 0 0 -1 p0 0 -1 ! p0 -1
Displaying statistics
One special output format of autfilt is the statistic output. For
instance the following command calls randaut to generate 10 random
automata, and pipe the result into autfilt to display various
statistics.
randaut --hoa -n 10 -A0..2 -S10..20 -d0.05 2 |
autfilt --stats='%s states, %e edges, %a acc-sets, %c SCCs, det=%d'
16 states, 27 edges, 1 acc-sets, 2 SCCs, det=0 12 states, 20 edges, 1 acc-sets, 2 SCCs, det=0 11 states, 15 edges, 0 acc-sets, 4 SCCs, det=1 16 states, 29 edges, 0 acc-sets, 2 SCCs, det=0 15 states, 30 edges, 2 acc-sets, 1 SCCs, det=0 11 states, 17 edges, 1 acc-sets, 2 SCCs, det=0 11 states, 16 edges, 1 acc-sets, 1 SCCs, det=1 17 states, 28 edges, 1 acc-sets, 1 SCCs, det=0 19 states, 36 edges, 0 acc-sets, 3 SCCs, det=0 11 states, 16 edges, 2 acc-sets, 6 SCCs, det=0
The following % sequences are available:
%% a single %
%A, %a number of acceptance pairs or sets
%C, %c number of SCCs
%d 1 if the output is deterministic, 0 otherwise
%E, %e number of edges
%F name of the input file
%n number of nondeterministic states in output
%p 1 if the output is complete, 0 otherwise
%r conversion time (including post-processings, but
not parsing) in seconds
%S, %s number of states
%T, %t number of transitions
When a letter is available both as uppercase and lowercase, the
uppercase version refer to the input automaton, while the lowercase
refer to the output automaton. Of course this distinction makes sense
only if autfilt was instructed to perform an operation on the input
automaton.
Simplifying automata
The standard set of automata simplification routines (these are often
referred to as the "post-processing" routines, because these are the
procedures performed by ltl2tgba after translating a formula into a
TGBA) are available through the following options.
This set of options controls the desired type of output automaton:
-B, --ba Büchi Automaton
-M, --monitor Monitor (accepts all finite prefixes of the given
property)
--tgba Transition-based Generalized Büchi Automaton
(default)
These options specifies desired properties:
-a, --any no preference (default)
-C, --complete output a complete automaton (combine with other
intents)
-D, --deterministic prefer deterministic automata
--small prefer small automata
Finally, the following switches control the amount of effort applied to reach the desired properties:
--high all available optimizations (slow)
--low minimal optimizations (fast, default)
--medium moderate optimizations