bin: add support for -b/--buchi

* bin/common_post.cc, bin/randaut.cc: Implement -b/--buchi.
Also add --sba as alias for -B, and --gba as alias for --tgba.
* NEWS: Document those changes.
* doc/org/ltl2tgba.org, doc/org/oaut.org: Adjust documentation.
* tests/core/ltl2tgba2.test, tests/core/ltlcross2.test,
tests/core/randaut.test: Add more tests.
* tests/core/sbacc.test: --sbacc cannot be abbreviated as --sba
anymore.
This commit is contained in:
Alexandre Duret-Lutz 2020-12-15 17:55:39 +01:00
parent 7c6b35313a
commit 8785f5a74b
9 changed files with 520 additions and 479 deletions

19
NEWS
View file

@ -18,6 +18,19 @@ New in spot 2.9.5.dev (not yet released)
Choices are "ITE" for the if-then-else normal form or "ISOP" for Choices are "ITE" for the if-then-else normal form or "ISOP" for
relying on irreducible sums of products. relying on irreducible sums of products.
- ltl2tgba, autfilt, dstar2tgba, and randaut learned a --buchi
option, or -b for short. This output Büchi automata without
forcing state-based acceptance.
The following aliases have also been added for consistency:
--gba is an alias for --tgba, because the "t" of --tgba is
never forced.
--sba is an alias for -B/--ba, because -B really
implies -S and that is not clear from --ba.
As a consequence of the introduction of --sba, the option
--sbacc (an alias for --state-based-acceptance) cannot be
abbreviated as --sba anymore.
Library: Library:
- Historically, Spot labels automata by Boolean formulas over - Historically, Spot labels automata by Boolean formulas over
@ -67,10 +80,14 @@ New in spot 2.9.5.dev (not yet released)
can be replaced by can be replaced by
postprocessor::set_type(postprocessor::BA) postprocessor::set_type(postprocessor::GeneralizedBuchi)
and and
postprocessor::set_type(postprocessor::BA)
by
postprocessor::set_type(postprocessor::Buchi) postprocessor::set_type(postprocessor::Buchi)
postprocessor::set_pref(postprocessor::Small postprocessor::set_pref(postprocessor::Small
| postprocessor::SBAcc) | postprocessor::SBAcc)

View file

@ -50,9 +50,15 @@ static constexpr const argp_option options[] =
{ "generic", 'G', nullptr, 0, { "generic", 'G', nullptr, 0,
"any acceptance condition is allowed", 0 }, "any acceptance condition is allowed", 0 },
{ "tgba", OPT_TGBA, nullptr, 0, { "tgba", OPT_TGBA, nullptr, 0,
"Transition-based Generalized Büchi Automaton (default)", 0 }, "automaton with Generalized Büchi acceptance (default)", 0 },
{ "ba", 'B', nullptr, 0, { "gba", 0, nullptr, OPTION_ALIAS, nullptr, 0 },
"Büchi Automaton (implies -S)", 0 }, { "sba", 'B', nullptr, 0,
"state-based Büchi Automaton (same as -S -b)", 0 },
// Historical name of the --sba option.
{ "ba", 0, nullptr, OPTION_ALIAS, nullptr, 0 },
{ "buchi", 'b', nullptr, 0,
"automaton with Büchi acceptance", 0 },
{ "Buchi", 0, nullptr, OPTION_ALIAS, nullptr, 0 },
{ "monitor", 'M', nullptr, 0, "Monitor (accepts all finite prefixes " { "monitor", 'M', nullptr, 0, "Monitor (accepts all finite prefixes "
"of the given property)", 0 }, "of the given property)", 0 },
{ "complete", 'C', nullptr, 0, "output a complete automaton", 0 }, { "complete", 'C', nullptr, 0, "output a complete automaton", 0 },
@ -113,9 +119,15 @@ static const argp_option options_disabled[] =
{ "generic", 'G', nullptr, 0, { "generic", 'G', nullptr, 0,
"any acceptance is allowed (default)", 0 }, "any acceptance is allowed (default)", 0 },
{ "tgba", OPT_TGBA, nullptr, 0, { "tgba", OPT_TGBA, nullptr, 0,
"Transition-based Generalized Büchi Automaton", 0 }, "automaton with Generalized Büchi acceptance", 0 },
{ "ba", 'B', nullptr, 0, { "gba", 0, nullptr, OPTION_ALIAS, nullptr, 0 },
"Büchi Automaton (with state-based acceptance)", 0 }, { "sba", 'B', nullptr, 0,
"state-based Büchi Automaton (same as -S -b)", 0 },
// Historical name of the --sba option.
{ "ba", 0, nullptr, OPTION_ALIAS, nullptr, 0 },
{ "buchi", 'b', nullptr, 0,
"automaton with Büchi acceptance", 0 },
{ "Buchi", 0, nullptr, OPTION_ALIAS, nullptr, 0 },
{ "monitor", 'M', nullptr, 0, "Monitor (accepts all finite prefixes " { "monitor", 'M', nullptr, 0, "Monitor (accepts all finite prefixes "
"of the given property)", 0 }, "of the given property)", 0 },
{ "complete", 'C', nullptr, 0, "output a complete automaton", 0 }, { "complete", 'C', nullptr, 0, "output a complete automaton", 0 },
@ -164,6 +176,10 @@ parse_opt_post(int key, char* arg, struct argp_state*)
pref = spot::postprocessor::Any; pref = spot::postprocessor::Any;
pref_set = true; pref_set = true;
break; break;
case 'b':
type = spot::postprocessor::Buchi;
colored = spot::postprocessor::Any;
break;
case 'B': case 'B':
type = spot::postprocessor::Buchi; type = spot::postprocessor::Buchi;
colored = spot::postprocessor::Any; colored = spot::postprocessor::Any;

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012-2016, 2018-2019 Laboratoire de Recherche et // Copyright (C) 2012-2016, 2018-2020 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -81,8 +81,14 @@ static const argp_option options[] =
"probability that an edge belongs to one acceptance set (0.2)", 0 }, "probability that an edge belongs to one acceptance set (0.2)", 0 },
{ "automata", 'n', "INT", 0, "number of automata to output (1)\n"\ { "automata", 'n', "INT", 0, "number of automata to output (1)\n"\
"use a negative value for unbounded generation", 0 }, "use a negative value for unbounded generation", 0 },
{ "ba", 'B', nullptr, 0, { "sba", 'B', nullptr, 0,
"build a Buchi automaton (implies --acceptance=Buchi --state-acc)", 0 }, "build a state-based Buchi automaton "
"(implies --acceptance=Buchi --state-acc)", 0 },
// historical name for --sba
{ "ba", 0, nullptr, OPTION_ALIAS, nullptr, 0 },
{ "buchi", 'b', nullptr, 0,
"build a Büchi automaton (same as --acceptance=Buchi)", 0 },
{ "Buchi", 0, nullptr, OPTION_ALIAS, nullptr, 0 },
{ "colored", OPT_COLORED, nullptr, 0, { "colored", OPT_COLORED, nullptr, 0,
"build an automaton in which each edge (or state if combined with " "build an automaton in which each edge (or state if combined with "
"-S) belong to a single acceptance set", 0 }, "-S) belong to a single acceptance set", 0 },
@ -161,10 +167,10 @@ static bool gba_wanted = false;
static std::unique_ptr<unique_aut_t> opt_uniq = nullptr; static std::unique_ptr<unique_aut_t> opt_uniq = nullptr;
static void static void
ba_options() ba_options(bool sbacc)
{ {
opt_acc_sets = { 1, 1 }; opt_acc_sets = { 1, 1 };
opt_state_acc = true; opt_state_acc = sbacc;
} }
// Range should have the form 12..34 or 12:34, maybe with spaces. The // Range should have the form 12..34 or 12:34, maybe with spaces. The
@ -209,8 +215,12 @@ parse_opt(int key, char* arg, struct argp_state* as)
generic_wanted = true; generic_wanted = true;
} }
break; break;
case 'b':
ba_options(false);
ba_wanted = true;
break;
case 'B': case 'B':
ba_options(); ba_options(true);
ba_wanted = true; ba_wanted = true;
break; break;
case 'e': case 'e':
@ -300,20 +310,22 @@ main(int argc, char** argv)
error(2, 0, error(2, 0,
"--spin implies --ba so should not be used with --acceptance"); "--spin implies --ba so should not be used with --acceptance");
if (generic_wanted && ba_wanted) if (generic_wanted && ba_wanted)
error(2, 0, "--acceptance and --ba may not be used together"); error(2, 0, "--acceptance and %s may not be used together",
opt_state_acc ? "--ba" : "--buchi");
if (automaton_format == Spin && opt_acc_sets.max > 1) if (automaton_format == Spin && opt_acc_sets.max > 1)
error(2, 0, "--spin is incompatible with --acceptance=%d..%d", error(2, 0, "--spin is incompatible with --acceptance=%d..%d",
opt_acc_sets.min, opt_acc_sets.max); opt_acc_sets.min, opt_acc_sets.max);
if (ba_wanted && opt_acc_sets.min != 1 && opt_acc_sets.max != 1) if (ba_wanted && opt_acc_sets.min != 1 && opt_acc_sets.max != 1)
error(2, 0, "--ba is incompatible with --acceptance=%d..%d", error(2, 0, "%s is incompatible with --acceptance=%d..%d",
opt_state_acc ? "--ba" : "--buchi",
opt_acc_sets.min, opt_acc_sets.max); opt_acc_sets.min, opt_acc_sets.max);
if (ba_wanted && generic_wanted) if (ba_wanted && generic_wanted)
error(2, 0, error(2, 0,
"--ba is incompatible with --acceptance=%s", opt_acceptance); "--ba is incompatible with --acceptance=%s", opt_acceptance);
if (automaton_format == Spin) if (automaton_format == Spin)
ba_options(); ba_options(true);
if (opt_colored && opt_acc_sets.min == -1 && !generic_wanted) if (opt_colored && opt_acc_sets.min == -1 && !generic_wanted)
error(2, 0, "--colored requires at least one acceptance set; " error(2, 0, "--colored requires at least one acceptance set; "

View file

@ -15,8 +15,10 @@ Those options will be covered in more detail below, but here is
a quick summary: a quick summary:
- =--tgba= (the default) outputs Transition-based Generalized Büchi - =--tgba= (the default) outputs Transition-based Generalized Büchi
Automata Automata,
- =--ba= (or =-B=) outputs state-based Büchi automata = =--buchi= (or =-b=) outputs transition-based Büchi automata,
- =--sba= (or =-B=) outputs state-based Büchi automata
(=--ba= is a historical alias for this option)
- =--monitor= (or =-M=) outputs monitors - =--monitor= (or =-M=) outputs monitors
- =--generic --deterministic= (or =-DG=) will do whatever it takes to - =--generic --deterministic= (or =-DG=) will do whatever it takes to
produce a deterministic automaton, and may use any acceptance produce a deterministic automaton, and may use any acceptance
@ -24,8 +26,19 @@ a quick summary:
- =--parity --deterministic= (or =-DP=) will produce a deterministic - =--parity --deterministic= (or =-DP=) will produce a deterministic
automaton with parity acceptance. automaton with parity acceptance.
(The latter two can also be used with =--deterministic=, but that is The latter two can also be used without =--deterministic=, but that is
less frequent.) less frequent.
Except for =-B= which forces state-based acceptance, these options
build transition-based automata by default. Internally, Spot only
supports transition-based automata. However, while transition-based
automata can be smaller then their state-based counterpart, there are
many cases where transition-based acceptance does not bring any benefits.
In case where it is detected that the transition-based automaton looks
like a state-based automaton, the different automaton printers will
usually present the result as an automaton with state-based acceptance
for simplicity.
* TGBA and BA * TGBA and BA
@ -57,11 +70,11 @@ State: 1
--END-- --END--
#+end_SRC #+end_SRC
Actually, because =ltl2tgba= is often used with a single formula As =ltl2tgba= is often used with a single formula passed on the
passed on the command line, the =-f= option can be omitted and any command line, the =-f= option can be omitted and any command-line
command-line parameter that is not the argument of some option will be parameter that is not the argument of some option will be assumed to
assumed to be a formula to translate (this differs from [[file:ltlfilt.org][=ltlfilt=]], be a formula to translate (this differs from [[file:ltlfilt.org][=ltlfilt=]], where such
where such parameters are assumed to be filenames). parameters are assumed to be filenames).
=ltl2tgba= honors the [[file:oaut.org][common options for selecting the output format]]. =ltl2tgba= honors the [[file:oaut.org][common options for selecting the output format]].
The default output format, as shown above, is the [[file:hoa.org][HOA]] format, as this The default output format, as shown above, is the [[file:hoa.org][HOA]] format, as this
@ -69,7 +82,7 @@ can easily be piped to other tools.
To convert the automaton into a picture, or into vectorial format, use To convert the automaton into a picture, or into vectorial format, use
=--dot= or =-d= to request [[http://www.graphviz.org/][GraphViz output]] and process the result with =--dot= or =-d= to request [[http://www.graphviz.org/][GraphViz output]] and process the result with
=dot= or =dotty=. Typically, you could get a =pdf= of this TGBA using =dot= or =dotty=. Typically, one can get a =pdf= of this TGBA using
#+BEGIN_SRC sh :exports code #+BEGIN_SRC sh :exports code
ltl2tgba "Fa & GFb" -d | dot -Tpdf > tgba.pdf ltl2tgba "Fa & GFb" -d | dot -Tpdf > tgba.pdf
#+END_SRC #+END_SRC
@ -92,10 +105,10 @@ $txt
Characters like ⓿, ❶, etc. denotes the acceptance sets a transition Characters like ⓿, ❶, etc. denotes the acceptance sets a transition
belongs to. In this case, there is only one acceptance set, called belongs to. In this case, there is only one acceptance set, called
=0=, containing a single transition. You may have many transitions in =0=, containing a single transition. An acceptance set can contains
the same acceptance set, and a transition may also belong to multiple multiple transitions, and a transition may also belong to multiple
acceptance sets. An infinite path through this automaton is accepting acceptance sets. An infinite path through this automaton is accepting
iff it visit each acceptance set infinitely often. Therefore, in the iff it visits each acceptance set infinitely often. Therefore, in the
above example, any accepted path will /necessarily/ leave the initial above example, any accepted path will /necessarily/ leave the initial
state after a finite amount of steps, and then it will verify the state after a finite amount of steps, and then it will verify the
property =b= infinitely often. It is also possible that an automaton property =b= infinitely often. It is also possible that an automaton
@ -137,99 +150,66 @@ these acceptance sets ensures that atomic propositions =a= and =b= must
be true infinitely often. be true infinitely often.
A Büchi automaton for the previous formula can be obtained with the A Büchi automaton for the previous formula can be obtained with the
=-B= option: =-B= or =-b= options, depending on whether we insist on have
state-based acceptance (=-B=) or if transition-based acceptance is OK
(=-b=).
#+NAME: dotex2tba
#+BEGIN_SRC sh :exports code
ltl2tgba -b 'GFa & GFb' -d
#+END_SRC
#+BEGIN_SRC dot :file dotex2tba.svg :var txt=dotex2tba :exports results
$txt
#+END_SRC
#+RESULTS:
[[file:dotex2tba.svg]]
#+NAME: dotex2ba #+NAME: dotex2ba
#+BEGIN_SRC sh :exports code #+BEGIN_SRC sh :exports code
ltl2tgba -B 'GFa & GFb' -d ltl2tgba -B 'GFa & GFb' -d
#+END_SRC #+END_SRC
#+RESULTS: dotex2ba
#+begin_example
digraph G {
rankdir=LR
node [shape="circle"]
fontname="Lato"
node [fontname="Lato"]
edge [fontname="Lato"]
node[style=filled, fillcolor="#ffffa0"] edge[arrowhead=vee, arrowsize=.7]
I [label="", style=invis, width=0]
I -> 0
0 [label="0", peripheries=2]
0 -> 0 [label=<a &amp; b>]
0 -> 1 [label=<!b>]
0 -> 2 [label=<!a &amp; b>]
1 [label="1"]
1 -> 0 [label=<a &amp; b>]
1 -> 1 [label=<!b>]
1 -> 2 [label=<!a &amp; b>]
2 [label="2"]
2 -> 0 [label=<a>]
2 -> 2 [label=<!a>]
}
#+end_example
#+BEGIN_SRC dot :file dotex2ba.svg :var txt=dotex2ba :exports results #+BEGIN_SRC dot :file dotex2ba.svg :var txt=dotex2ba :exports results
$txt $txt
#+END_SRC #+END_SRC
#+RESULTS: #+RESULTS:
[[file:dotex2ba.svg]] [[file:dotex2ba.svg]]
Although accepting states in the Büchi automaton are (traditionally) Although accepting states in state-based Büchi automaton are
pictured with double-lines, internally this automaton is still handled (traditionally) pictured with double-lines, internally this automaton
as a TGBA with a single acceptance set such that the transitions is still handled as a TGBA with a single acceptance set such that the
leaving the state are either all accepting, or all non-accepting. You transitions leaving the state are either all accepting, or all
can see this underlying TGBA if you pass the =--dot=t= option (the =t= non-accepting. The underlying TGBA can be seen by passing the
requests the use of transition-based acceptance as it is done =--dot=t= option (the =t= requests the use of transition-based
internally): acceptance, as it is done internally):
#+BEGIN_SRC sh :exports code #+BEGIN_SRC sh :exports code
ltl2tgba --dot=t -B 'GFa & GFb' ltl2tgba -B 'GFa & GFb' --dot=t
#+END_SRC #+END_SRC
#+NAME: dotex2ba-t #+NAME: dotex2ba-t
#+BEGIN_SRC sh :exports none #+BEGIN_SRC sh :exports none
ltl2tgba --dot=.t -B 'GFa & GFb' ltl2tgba -B 'GFa & GFb' --dot=.t
#+END_SRC #+END_SRC
#+RESULTS: dotex2ba-t
#+begin_example
digraph G {
rankdir=LR
fontname="Lato"
node [fontname="Lato"]
edge [fontname="Lato"]
node[style=filled, fillcolor="#ffffa0"] edge[arrowhead=vee, arrowsize=.7]
I [label="", style=invis, width=0]
I -> 0
0 [label="0"]
0 -> 0 [label=<a &amp; b<br/><font color="#5DA5DA">⓿</font>>]
0 -> 1 [label=<!b<br/><font color="#5DA5DA">⓿</font>>]
0 -> 2 [label=<!a &amp; b<br/><font color="#5DA5DA">⓿</font>>]
1 [label="1"]
1 -> 0 [label=<a &amp; b>]
1 -> 1 [label=<!b>]
1 -> 2 [label=<!a &amp; b>]
2 [label="2"]
2 -> 0 [label=<a>]
2 -> 2 [label=<!a>]
}
#+end_example
#+BEGIN_SRC dot :file dotex2ba-t.svg :var txt=dotex2ba-t :exports results #+BEGIN_SRC dot :file dotex2ba-t.svg :var txt=dotex2ba-t :exports results
$txt $txt
#+END_SRC #+END_SRC
#+RESULTS: #+RESULTS:
[[file:dotex2ba-t.svg]] [[file:dotex2ba-t.svg]]
Using option =-S= instead of option =-B= you can obtain generalized
Büchi automata with state-based acceptance. Here is the same formula Option =-B= is in fact a shorthand for =-b -S=, where =-b= requests
as above, for comparison. Büchi acceptance, and =-S= requests state-based acceptance.
Calling =ltl2tgba -S= will build an automaton with generalized Büchi
acceptance (the default for =ltltgba=), but force state-based
acceptance on the output.
Here is the same formula as above, for comparison.
#+NAME: dotex2gba #+NAME: dotex2gba
#+BEGIN_SRC sh :exports code #+BEGIN_SRC sh :exports code
ltl2tgba -S 'GFa & GFb' -d ltl2tgba -S 'GFa & GFb' -d
#+END_SRC #+END_SRC
#+BEGIN_SRC dot :file dotex2gba.svg :var txt=dotex2gba :exports results #+BEGIN_SRC dot :file dotex2gba.svg :var txt=dotex2gba :exports results
$txt $txt
#+END_SRC #+END_SRC
@ -254,23 +234,32 @@ ltl2tgba --help | sed -n '/Output format:/,/^$/p' | sed '1d;$d'
--lbtt or --spin) --lbtt or --spin)
--check[=PROP] test for the additional property PROP and output --check[=PROP] test for the additional property PROP and output
the result in the HOA format (implies -H). PROP the result in the HOA format (implies -H). PROP
may be any prefix of 'all' (default), may be some prefix of 'all' (default),
'unambiguous', 'stutter-invariant', or 'unambiguous', 'stutter-invariant',
'strength'. 'stutter-sensitive-example', 'semi-determinism',
-d, --dot[=1|a|b|B|c|e|f(FONT)|h|n|N|o|r|R|s|t|v|+INT] or 'strength'.
-d, --dot[=1|a|A|b|B|c|C(COLOR)|e|E|f(FONT)|h|k|K|n|N|o|r|R|s|t|u|v|y|+INT|<INT|#]
GraphViz's format. Add letters for (1) force GraphViz's format. Add letters for (1) force
numbered states, (a) acceptance display, (b) numbered states, (a) show acceptance condition
(default), (A) hide acceptance condition, (b)
acceptance sets as bullets, (B) bullets except for acceptance sets as bullets, (B) bullets except for
Büchi/co-Büchi automata, (c) force circular Büchi/co-Büchi automata, (c) force circular
nodes, (e) force elliptic nodes, (f(FONT)) use nodes, (C) color nodes with COLOR, (d) show
FONT, (h) horizontal layout, (v) vertical layout, origins when known, (e) force elliptic nodes, (E)
(n) with name, (N) without name, (o) ordered force rEctangular nodes, (f(FONT)) use FONT, (g)
transitions, (r) rainbow colors for acceptance hide edge labels, (h) horizontal layout, (k) use
sets, (R) color acceptance sets by Inf/Fin, (s) state labels when possible, (K) use transition
with SCCs, (t) force transition-based acceptance, labels (default), (n) show name, (N) hide name,
(+INT) add INT to all set numbers (o) ordered transitions, (r) rainbow colors for
-H, --hoaf[=i|l|m|s|t|v] Output the automaton in HOA format (default). Add acceptance sets, (R) color acceptance sets by
letters to select (i) use implicit labels for 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|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, (i) use implicit labels for
complete deterministic automata, (s) prefer complete deterministic automata, (s) prefer
state-based acceptance when possible [default], state-based acceptance when possible [default],
(t) force transition-based acceptance, (m) mix (t) force transition-based acceptance, (m) mix
@ -287,40 +276,17 @@ ltl2tgba --help | sed -n '/Output format:/,/^$/p' | sed '1d;$d'
-s, --spin[=6|c] Spin neverclaim (implies --ba). Add letters to -s, --spin[=6|c] Spin neverclaim (implies --ba). Add letters to
select (6) Spin's 6.2.4 style, (c) comments on select (6) Spin's 6.2.4 style, (c) comments on
states states
--stats=FORMAT output statistics about the automaton --stats=FORMAT, --format=FORMAT
output statistics about the automaton
#+end_example #+end_example
Option =-8= can be used to improve the readability of the output Option =-8= can be used to improve the readability of the output
if your system can display UTF-8 correctly. on systems that can display UTF-8 correctly.
#+NAME: dotex2ba8 #+NAME: dotex2ba8
#+BEGIN_SRC sh :exports code #+BEGIN_SRC sh :exports code
ltl2tgba -B8 "GFa & GFb" -d ltl2tgba -8B "GFa & GFb" -d
#+END_SRC #+END_SRC
#+RESULTS: dotex2ba8
#+begin_example
digraph G {
rankdir=LR
fontname="Lato"
node [fontname="Lato"]
edge [fontname="Lato"]
node[style=filled, fillcolor="#ffffa0"] edge[arrowhead=vee, arrowsize=.7]
I [label="", style=invis, width=0]
I -> 0
0 [label=<0<br/><font color="#5DA5DA">⓿</font>>]
0 -> 0 [label=<a∧b>]
0 -> 1 [label=<>]
0 -> 2 [label=<a̅∧b>]
1 [label=<1>]
1 -> 0 [label=<a∧b>]
1 -> 1 [label=<>]
1 -> 2 [label=<a̅∧b>]
2 [label=<2>]
2 -> 0 [label=<a>]
2 -> 2 [label=<>]
}
#+end_example
#+BEGIN_SRC dot :file dotex2ba8.svg :var txt=dotex2ba8 :exports results #+BEGIN_SRC dot :file dotex2ba8.svg :var txt=dotex2ba8 :exports results
$txt $txt
#+END_SRC #+END_SRC

View file

@ -297,48 +297,67 @@ represented in the first version.
* LBTT output * LBTT output
The [[http://www.tcs.hut.fi/Software/lbtt/doc/html/Format-for-automata.html][LBTT]] output has two flavors: state-based (which is used to output The [[http://www.tcs.hut.fi/Software/lbtt/doc/html/Format-for-automata.html][LBTT]] output has two flavors: state-based or transition-based. The
Büchi automata or monitors) or transition-based (for TGBA). transition flavor can be recognized by the present of a =t= after the
second number. (The first number is the number of states, while the
second number is the number of acceptance sets used.)
Compare the following transition-based and state-based Büchi automata
for =GFp0=:
#+BEGIN_SRC sh #+BEGIN_SRC sh
ltl2tgba --ba --lbtt 'p0 U p1' ltl2tgba -b --lbtt 'GFp0'
#+END_SRC
#+RESULTS:
: 1 1t
: 0 1
: 0 -1 ! p0
: 0 0 -1 p0
: -1
#+BEGIN_SRC sh
ltl2tgba -B --lbtt 'GFp0'
#+END_SRC #+END_SRC
#+RESULTS: #+RESULTS:
: 2 1 : 2 1
: 0 1 -1 : 0 1 0 -1
: 1 p1 : 0 p0
: 0 & p0 ! p1 : 1 ! p0
: -1 : -1
: 1 0 0 -1 : 1 0 -1
: 1 t : 0 p0
: 1 ! p0
: -1 : -1
If you want to request transition-based output even for Büchi automata, Since even state-based automata are stored as transition-based
use =--lbtt=t=. automata by Spot, it is also possible to force transition-based
LBTT output to be used even if the automaton declares itself as
state-based. This is done by passing =--lbtt=t=.
#+BEGIN_SRC sh #+BEGIN_SRC sh
ltl2tgba --ba --lbtt=t 'p0 U p1' ltl2tgba -B --lbtt=t 'GFp0'
#+END_SRC #+END_SRC
#+RESULTS: #+RESULTS:
: 2 1t : 2 1t
: 0 1 : 0 1
: 1 -1 p1 : 0 0 -1 p0
: 0 -1 & p0 ! p1 : 1 0 -1 ! p0
: -1 : -1
: 1 0 : 1 0
: 1 0 -1 t : 0 -1 p0
: 1 -1 ! p0
: -1 : -1
Note that the [[http://www.tcs.hut.fi/Software/lbtt/doc/html/Format-for-automata.html][LBTT]] output generalizes the format output by [[http://www.tcs.hut.fi/Software/maria/tools/lbt/][LBT]] with Note that the [[http://www.tcs.hut.fi/Software/lbtt/doc/html/Format-for-automata.html][LBTT]] output generalizes the format output by [[http://www.tcs.hut.fi/Software/maria/tools/lbt/][LBT]] with
support for transition-based acceptance. Both formats however are support for transition-based acceptance. Both formats however are
restricted to atomic propositions of the form =p0=, =p1=, etc... In restricted to atomic propositions of the form =p0=, =p1=, etc... In
case other atomic propositions are used, Spot output them in double case other atomic propositions are used, Spot output them in double
quotes. This other extension of the format is also supported by quotes. This second extension of the format was introduced by
[[http://www.ltl2dstar.de/][ltl2dstar]]. [[http://www.ltl2dstar.de/][ltl2dstar]].
#+BEGIN_SRC sh #+BEGIN_SRC sh
ltl2tgba --ba --lbtt 'a U b' ltl2tgba -B --lbtt 'a U b'
#+END_SRC #+END_SRC
#+RESULTS: #+RESULTS:

View file

@ -33,332 +33,336 @@ genltl --dac --eh --sb --hkrss --p --and-fg=32 --format=%F,%L,%f >pos
ltl2tgba -Fformulas/3 --stats='%<,%f, %s,%t' | ltl2tgba -Fformulas/3 --stats='%<,%f, %s,%t' |
ltl2tgba -D -F-/3 --stats='%<,%f,%>, %s,%t' | ltl2tgba -D -F-/3 --stats='%<,%f,%>, %s,%t' |
ltl2tgba -b -F-/3 --stats='%<,%f,%>, %s,%t' |
ltl2tgba -bD -F-/3 --stats='%<,%f,%>, %s,%t' |
ltl2tgba -B -F-/3 --stats='%<,%f,%>, %s,%t' | ltl2tgba -B -F-/3 --stats='%<,%f,%>, %s,%t' |
ltl2tgba -BD -F-/3 --stats='%<,%>, %s,%t' > output ltl2tgba -BD -F-/3 --stats='%<,%>, %s,%t' > output
fg42=2,4294967298
gf42=1,4294967296
cat >expected <<EOF cat >expected <<EOF
dac-patterns,1, 1,1, 1,1, 1,1, 1,1 dac-patterns,1, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1
dac-patterns,2, 3,10, 3,10, 3,10, 3,10 dac-patterns,2, 3,10, 3,10, 3,10, 3,10, 3,10, 3,10
dac-patterns,3, 2,5, 2,5, 2,5, 2,5 dac-patterns,3, 2,5, 2,5, 2,5, 2,5, 2,5, 2,5
dac-patterns,4, 3,20, 3,20, 3,20, 3,20 dac-patterns,4, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
dac-patterns,5, 2,13, 2,13, 2,13, 2,13 dac-patterns,5, 2,13, 2,13, 2,13, 2,13, 2,13, 2,13
dac-patterns,6, 2,4, 2,4, 2,4, 2,4 dac-patterns,6, 2,4, 2,4, 2,4, 2,4, 2,4, 2,4
dac-patterns,7, 2,6, 2,6, 2,6, 2,6 dac-patterns,7, 2,6, 2,6, 2,6, 2,6, 2,6, 2,6
dac-patterns,8, 3,12, 3,12, 3,12, 3,12 dac-patterns,8, 3,12, 3,12, 3,12, 3,12, 3,12, 3,12
dac-patterns,9, 2,12, 2,12, 2,12, 2,12 dac-patterns,9, 2,12, 2,12, 2,12, 2,12, 2,12, 2,12
dac-patterns,10, 2,12, 2,12, 2,12, 2,12 dac-patterns,10, 2,12, 2,12, 2,12, 2,12, 2,12, 2,12
dac-patterns,11, 5,9, 5,9, 5,9, 5,9 dac-patterns,11, 5,9, 5,9, 5,9, 5,9, 5,9, 5,9
dac-patterns,12, 7,26, 7,26, 7,26, 7,26 dac-patterns,12, 7,26, 7,26, 7,26, 7,26, 7,26, 7,26
dac-patterns,13, 6,22, 6,22, 6,22, 6,22 dac-patterns,13, 6,22, 6,22, 6,22, 6,22, 6,22, 6,22
dac-patterns,14, 7,52, 7,52, 7,52, 7,52 dac-patterns,14, 7,52, 7,52, 7,52, 7,52, 7,52, 7,52
dac-patterns,15, 6,46, 6,46, 6,46, 6,46 dac-patterns,15, 6,46, 6,46, 6,46, 6,46, 6,46, 6,46
dac-patterns,16, 1,1, 1,1, 1,1, 1,1 dac-patterns,16, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1
dac-patterns,17, 3,10, 3,10, 3,10, 3,10 dac-patterns,17, 3,10, 3,10, 3,10, 3,10, 3,10, 3,10
dac-patterns,18, 2,5, 2,5, 2,5, 2,5 dac-patterns,18, 2,5, 2,5, 2,5, 2,5, 2,5, 2,5
dac-patterns,19, 3,20, 3,20, 3,20, 3,20 dac-patterns,19, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
dac-patterns,20, 2,13, 2,13, 2,13, 2,13 dac-patterns,20, 2,13, 2,13, 2,13, 2,13, 2,13, 2,13
dac-patterns,21, 2,7, 2,7, 2,7, 2,7 dac-patterns,21, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
dac-patterns,22, 3,20, 3,20, 3,20, 3,20 dac-patterns,22, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
dac-patterns,23, 5,40, 5,40, 5,40, 5,40 dac-patterns,23, 5,40, 5,40, 5,40, 5,40, 5,40, 5,40
dac-patterns,24, 3,40, 3,40, 3,40, 3,40 dac-patterns,24, 3,40, 3,40, 3,40, 3,40, 3,40, 3,40
dac-patterns,25, 2,29, 2,29, 2,29, 2,29 dac-patterns,25, 2,29, 2,29, 2,29, 2,29, 2,29, 2,29
dac-patterns,26, 2,8, 2,8, 2,8, 2,8 dac-patterns,26, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
dac-patterns,27, 3,20, 3,20, 3,20, 3,20 dac-patterns,27, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
dac-patterns,28, 3,24, 3,24, 3,24, 3,24 dac-patterns,28, 3,24, 3,24, 3,24, 3,24, 3,24, 3,24
dac-patterns,29, 3,40, 3,40, 3,40, 3,40 dac-patterns,29, 3,40, 3,40, 3,40, 3,40, 3,40, 3,40
dac-patterns,30, 3,40, 3,40, 3,40, 3,40 dac-patterns,30, 3,40, 3,40, 3,40, 3,40, 3,40, 3,40
dac-patterns,31, 3,18, 3,18, 3,18, 3,18 dac-patterns,31, 3,18, 3,18, 3,18, 3,18, 3,18, 3,18
dac-patterns,32, 4,56, 4,56, 4,56, 4,56 dac-patterns,32, 4,56, 4,56, 4,56, 4,56, 4,56, 4,56
dac-patterns,33, 4,48, 4,48, 4,48, 4,48 dac-patterns,33, 4,48, 4,48, 4,48, 4,48, 4,48, 4,48
dac-patterns,34, 4,112, 4,112, 4,112, 4,112 dac-patterns,34, 4,112, 4,112, 4,112, 4,112, 4,112, 4,112
dac-patterns,35, 3,78, 3,78, 3,78, 3,78 dac-patterns,35, 3,78, 3,78, 3,78, 3,78, 3,78, 3,78
dac-patterns,36, 3,20, 3,20, 3,20, 3,20 dac-patterns,36, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
dac-patterns,37, 4,56, 4,56, 4,56, 4,56 dac-patterns,37, 4,56, 4,56, 4,56, 4,56, 4,56, 4,56
dac-patterns,38, 4,56, 4,56, 4,56, 4,56 dac-patterns,38, 4,56, 4,56, 4,56, 4,56, 4,56, 4,56
dac-patterns,39, 4,112, 4,112, 4,112, 4,112 dac-patterns,39, 4,112, 4,112, 4,112, 4,112, 4,112, 4,112
dac-patterns,40, 3,88, 3,88, 3,88, 3,88 dac-patterns,40, 3,88, 3,88, 3,88, 3,88, 3,88, 3,88
dac-patterns,41, 4,32, 4,32, 4,32, 4,32 dac-patterns,41, 4,32, 4,32, 4,32, 4,32, 4,32, 4,32
dac-patterns,42, 6,96, 6,96, 6,96, 6,96 dac-patterns,42, 6,96, 6,96, 6,96, 6,96, 6,96, 6,96
dac-patterns,43, 5,80, 5,80, 5,80, 5,80 dac-patterns,43, 5,80, 5,80, 5,80, 5,80, 5,80, 5,80
dac-patterns,44, 10,300, 10,300, 13,372, 13,372 dac-patterns,44, 10,300, 10,300, 12,368, 12,368, 13,372, 13,372
dac-patterns,45, 10,296, 10,296, 9,280, 9,280 dac-patterns,45, 10,296, 10,296, 10,296, 10,296, 9,280, 9,280
dac-patterns,46, 4,41, 4,41, 5,50, 5,50 dac-patterns,46, 4,41, 4,41, 4,41, 4,41, 5,50, 5,50
dac-patterns,47, 4,52, 4,52, 4,52, 4,52 dac-patterns,47, 4,52, 4,52, 4,52, 4,52, 4,52, 4,52
dac-patterns,48, 3,38, 3,38, 4,50, 4,50 dac-patterns,48, 3,38, 3,38, 3,38, 3,38, 4,50, 4,50
dac-patterns,49, 4,104, 4,104, 4,104, 4,104 dac-patterns,49, 4,104, 4,104, 4,104, 4,104, 4,104, 4,104
dac-patterns,50, 6,164, 6,164, 7,188, 7,188 dac-patterns,50, 6,164, 6,164, 6,164, 6,164, 7,188, 7,188
dac-patterns,51, 4,65, 4,65, 5,78, 5,78 dac-patterns,51, 4,65, 4,65, 4,65, 4,65, 5,78, 5,78
dac-patterns,52, 4,104, 4,104, 4,104, 4,104 dac-patterns,52, 4,104, 4,104, 4,104, 4,104, 4,104, 4,104
dac-patterns,53, 3,62, 3,62, 4,78, 4,78 dac-patterns,53, 3,62, 3,62, 3,62, 3,62, 4,78, 4,78
dac-patterns,54, 4,208, 4,208, 4,208, 4,208 dac-patterns,54, 4,208, 4,208, 4,208, 4,208, 4,208, 4,208
dac-patterns,55, 6,292, 6,292, 7,324, 7,324 dac-patterns,55, 6,292, 6,292, 6,292, 6,292, 7,324, 7,324
eh-patterns,1, 2,10, 2,10, 2,10, 2,10 eh-patterns,1, 2,10, 2,10, 2,10, 2,10, 2,10, 2,10
eh-patterns,2, 3,44, 4,55, 3,44, 4,55 eh-patterns,2, 3,44, 4,55, 3,44, 4,55, 3,44, 4,55
eh-patterns,3, 7,832, 8,912, 7,832, 8,912 eh-patterns,3, 7,832, 8,912, 7,832, 8,912, 7,832, 8,912
eh-patterns,4, 2,8, 2,8, 2,8, 2,8 eh-patterns,4, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
eh-patterns,5, 4,32, 4,32, 4,32, 4,32 eh-patterns,5, 4,32, 4,32, 4,32, 4,32, 4,32, 4,32
eh-patterns,6, 3,24, 3,24, 3,24, 3,24 eh-patterns,6, 3,24, 3,24, 3,24, 3,24, 3,24, 3,24
eh-patterns,7, 3,14, 3,14, 4,18, 4,18 eh-patterns,7, 3,14, 3,14, 3,14, 3,14, 4,18, 4,18
eh-patterns,8, 2,13, 2,13, 2,13, 2,13 eh-patterns,8, 2,13, 2,13, 2,13, 2,13, 2,13, 2,13
eh-patterns,9, 1,8, 1,8, 4,32, 4,32 eh-patterns,9, 1,8, 1,8, 3,24, 3,24, 4,32, 4,32
eh-patterns,10, 1,32, 1,32, 6,192, 6,192 eh-patterns,10, 1,32, 1,32, 5,160, 5,160, 6,192, 6,192
eh-patterns,11, 2,15, 2,15, 2,15, 2,15 eh-patterns,11, 2,15, 2,15, 2,15, 2,15, 2,15, 2,15
eh-patterns,12, 4,60, 4,60, 4,60, 4,60 eh-patterns,12, 4,60, 4,60, 4,60, 4,60, 4,60, 4,60
sb-patterns,1, 2,7, 2,7, 2,7, 2,7 sb-patterns,1, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
sb-patterns,2, 3,21, 3,21, 3,21, 3,21 sb-patterns,2, 3,21, 3,21, 3,21, 3,21, 3,21, 3,21
sb-patterns,3, 3,16, 3,16, 3,16, 3,16 sb-patterns,3, 3,16, 3,16, 3,16, 3,16, 3,16, 3,16
sb-patterns,4, 3,14, 3,14, 4,18, 4,18 sb-patterns,4, 3,14, 3,14, 3,14, 3,14, 4,18, 4,18
sb-patterns,5, 3,13, 3,13, 3,13, 3,13 sb-patterns,5, 3,13, 3,13, 3,13, 3,13, 3,13, 3,13
sb-patterns,6, 4,11, 4,11, 4,11, 4,11 sb-patterns,6, 4,11, 4,11, 4,11, 4,11, 4,11, 4,11
sb-patterns,7, 3,7, 3,7, 3,7, 3,7 sb-patterns,7, 3,7, 3,7, 3,7, 3,7, 3,7, 3,7
sb-patterns,8, 2,7, 2,7, 3,9, 3,9 sb-patterns,8, 2,7, 2,7, 2,7, 2,7, 3,9, 3,9
sb-patterns,9, 3,10, 3,10, 5,14, 5,14 sb-patterns,9, 3,10, 3,10, 3,10, 3,10, 5,14, 5,14
sb-patterns,10, 2,7, 2,7, 2,7, 2,7 sb-patterns,10, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
sb-patterns,11, 1,1, 1,1, 1,1, 1,1 sb-patterns,11, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1
sb-patterns,12, 1,1, 1,1, 1,1, 1,1 sb-patterns,12, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1
sb-patterns,13, 2,8, 2,8, 2,8, 2,8 sb-patterns,13, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
sb-patterns,14, 2,8, 2,8, 2,8, 2,8 sb-patterns,14, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
sb-patterns,16, 3,24, 3,24, 3,24, 3,24 sb-patterns,16, 3,24, 3,24, 3,24, 3,24, 3,24, 3,24
sb-patterns,17, 1,4, 1,4, 3,12, 3,12 sb-patterns,17, 1,4, 1,4, 2,8, 2,8, 3,12, 3,12
sb-patterns,18, 1,4, 1,4, 3,12, 3,12 sb-patterns,18, 1,4, 1,4, 2,8, 2,8, 3,12, 3,12
sb-patterns,19, 4,8, 4,8, 4,8, 4,8 sb-patterns,19, 4,8, 4,8, 4,8, 4,8, 4,8, 4,8
sb-patterns,20, 5,28, 5,28, 5,28, 5,28 sb-patterns,20, 5,28, 5,28, 5,28, 5,28, 5,28, 5,28
sb-patterns,21, 4,32, 4,32, 6,48, 6,48 sb-patterns,21, 4,32, 4,32, 5,40, 5,40, 6,48, 6,48
sb-patterns,22, 3,7, 3,7, 3,7, 3,7 sb-patterns,22, 3,7, 3,7, 3,7, 3,7, 3,7, 3,7
sb-patterns,23, 6,58, 6,58, 6,58, 6,58 sb-patterns,23, 6,58, 6,58, 6,58, 6,58, 6,58, 6,58
sb-patterns,24, 4,16, 4,16, 4,16, 4,16 sb-patterns,24, 4,16, 4,16, 4,16, 4,16, 4,16, 4,16
sb-patterns,25, 3,10, 3,10, 3,10, 3,10 sb-patterns,25, 3,10, 3,10, 3,10, 3,10, 3,10, 3,10
sb-patterns,26, 1,1, 1,1, 1,1, 1,1 sb-patterns,26, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1
sb-patterns,27, 2,7, 2,7, 2,7, 2,7 sb-patterns,27, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
hkrss-patterns,1, 1,2, 1,2, 3,6, 3,6 hkrss-patterns,1, 1,2, 1,2, 2,4, 2,4, 3,6, 3,6
hkrss-patterns,2, 1,2, 1,2, 3,6, 3,6 hkrss-patterns,2, 1,2, 1,2, 2,4, 2,4, 3,6, 3,6
hkrss-patterns,3, 4,16, 4,16, 5,20, 5,20 hkrss-patterns,3, 4,16, 4,16, 4,16, 4,16, 5,20, 5,20
hkrss-patterns,4, 9,400, 16,256, 9,400, 17,272 hkrss-patterns,4, 9,400, 16,256, 9,400, 16,256, 9,400, 17,272
hkrss-patterns,6, 1,2, 1,2, 3,6, 3,6 hkrss-patterns,6, 1,2, 1,2, 2,4, 2,4, 3,6, 3,6
hkrss-patterns,7, 2,8, 2,8, 2,8, 2,8 hkrss-patterns,7, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
hkrss-patterns,8, 1,1, 1,1, 1,1, 1,1 hkrss-patterns,8, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1
hkrss-patterns,9, 2,8, 2,8, 2,8, 2,8 hkrss-patterns,9, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
hkrss-patterns,11, 2,16, 2,16, 2,16, 2,16 hkrss-patterns,11, 2,16, 2,16, 2,16, 2,16, 2,16, 2,16
hkrss-patterns,12, 2,32, 2,32, 2,32, 2,32 hkrss-patterns,12, 2,32, 2,32, 2,32, 2,32, 2,32, 2,32
hkrss-patterns,13, 16,4096, 16,4096, 40,10240, 40,10240 hkrss-patterns,13, 16,4096, 16,4096, 33,8448, 33,8448, 40,10240, 40,10240
hkrss-patterns,14, 1,1, 1,1, 1,1, 1,1 hkrss-patterns,14, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1
hkrss-patterns,15, 1,3, 1,3, 1,3, 1,3 hkrss-patterns,15, 1,3, 1,3, 1,3, 1,3, 1,3, 1,3
hkrss-patterns,16, 1,3, 1,3, 1,3, 1,3 hkrss-patterns,16, 1,3, 1,3, 1,3, 1,3, 1,3, 1,3
hkrss-patterns,17, 1,3, 1,3, 1,3, 1,3 hkrss-patterns,17, 1,3, 1,3, 1,3, 1,3, 1,3, 1,3
hkrss-patterns,18, 1,6, 1,6, 1,6, 1,6 hkrss-patterns,18, 1,6, 1,6, 1,6, 1,6, 1,6, 1,6
hkrss-patterns,19, 1,25, 1,25, 1,25, 1,25 hkrss-patterns,19, 1,25, 1,25, 1,25, 1,25, 1,25, 1,25
hkrss-patterns,20, 1,31, 1,31, 1,31, 1,31 hkrss-patterns,20, 1,31, 1,31, 1,31, 1,31, 1,31, 1,31
hkrss-patterns,21, 2,1024, 2,1024, 2,1024, 2,1024 hkrss-patterns,21, 2,1024, 2,1024, 2,1024, 2,1024, 2,1024, 2,1024
hkrss-patterns,22, 2,1024, 2,1024, 2,1024, 2,1024 hkrss-patterns,22, 2,1024, 2,1024, 2,1024, 2,1024, 2,1024, 2,1024
hkrss-patterns,23, 1,63, 1,63, 1,63, 1,63 hkrss-patterns,23, 1,63, 1,63, 1,63, 1,63, 1,63, 1,63
hkrss-patterns,24, 1,63, 1,63, 1,63, 1,63 hkrss-patterns,24, 1,63, 1,63, 1,63, 1,63, 1,63, 1,63
hkrss-patterns,25, 1,63, 1,63, 1,63, 1,63 hkrss-patterns,25, 1,63, 1,63, 1,63, 1,63, 1,63, 1,63
hkrss-patterns,26, 1,98, 1,98, 1,98, 1,98 hkrss-patterns,26, 1,98, 1,98, 1,98, 1,98, 1,98, 1,98
hkrss-patterns,27, 1,127, 1,127, 1,127, 1,127 hkrss-patterns,27, 1,127, 1,127, 1,127, 1,127, 1,127, 1,127
hkrss-patterns,28, 1,255, 1,255, 1,255, 1,255 hkrss-patterns,28, 1,255, 1,255, 1,255, 1,255, 1,255, 1,255
hkrss-patterns,29, 3,44, 3,44, 3,44, 3,44 hkrss-patterns,29, 3,44, 3,44, 3,44, 3,44, 3,44, 3,44
hkrss-patterns,30, 5,78, 5,78, 5,78, 5,78 hkrss-patterns,30, 5,78, 5,78, 5,78, 5,78, 5,78, 5,78
hkrss-patterns,31, 1,1, 1,1, 1,1, 1,1 hkrss-patterns,31, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1
hkrss-patterns,32, 3,46, 3,46, 3,46, 3,46 hkrss-patterns,32, 3,46, 3,46, 3,46, 3,46, 3,46, 3,46
hkrss-patterns,33, 3,46, 3,46, 3,46, 3,46 hkrss-patterns,33, 3,46, 3,46, 3,46, 3,46, 3,46, 3,46
hkrss-patterns,34, 2,12, 2,12, 2,12, 2,12 hkrss-patterns,34, 2,12, 2,12, 2,12, 2,12, 2,12, 2,12
hkrss-patterns,35, 2,7, 2,7, 2,7, 2,7 hkrss-patterns,35, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
hkrss-patterns,36, 34,192, 34,192, 34,192, 34,192 hkrss-patterns,36, 34,192, 34,192, 34,192, 34,192, 34,192, 34,192
hkrss-patterns,37, 2,30, 2,30, 2,30, 2,30 hkrss-patterns,37, 2,30, 2,30, 2,30, 2,30, 2,30, 2,30
hkrss-patterns,38, 2,7, 2,7, 3,10, 3,10 hkrss-patterns,38, 2,7, 2,7, 2,7, 2,7, 3,10, 3,10
hkrss-patterns,39, 3,11, 3,11, 3,11, 3,11 hkrss-patterns,39, 3,11, 3,11, 3,11, 3,11, 3,11, 3,11
hkrss-patterns,40, 4,13, 4,13, 4,13, 4,13 hkrss-patterns,40, 4,13, 4,13, 4,13, 4,13, 4,13, 4,13
hkrss-patterns,41, 6,17, 6,17, 6,17, 6,17 hkrss-patterns,41, 6,17, 6,17, 6,17, 6,17, 6,17, 6,17
hkrss-patterns,42, 6,17, 6,17, 6,17, 6,17 hkrss-patterns,42, 6,17, 6,17, 6,17, 6,17, 6,17, 6,17
hkrss-patterns,43, 8,21, 8,21, 8,21, 8,21 hkrss-patterns,43, 8,21, 8,21, 8,21, 8,21, 8,21, 8,21
hkrss-patterns,44, 6,22, 6,22, 6,22, 6,22 hkrss-patterns,44, 6,22, 6,22, 6,22, 6,22, 6,22, 6,22
hkrss-patterns,45, 12,23, 12,23, 12,23, 12,23 hkrss-patterns,45, 12,23, 12,23, 12,23, 12,23, 12,23, 12,23
hkrss-patterns,46, 4,14, 5,14, 4,14, 5,14 hkrss-patterns,46, 4,14, 5,14, 4,14, 5,14, 4,14, 5,14
hkrss-patterns,47, 4,14, 5,14, 4,14, 5,14 hkrss-patterns,47, 4,14, 5,14, 4,14, 5,14, 4,14, 5,14
hkrss-patterns,48, 2,36, 2,36, 2,36, 2,36 hkrss-patterns,48, 2,36, 2,36, 2,36, 2,36, 2,36, 2,36
hkrss-patterns,49, 2,7, 2,7, 2,7, 2,7 hkrss-patterns,49, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
hkrss-patterns,50, 2,7, 2,7, 2,7, 2,7 hkrss-patterns,50, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
hkrss-patterns,51, 2,2, 2,2, 2,2, 2,2 hkrss-patterns,51, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2
hkrss-patterns,52, 4,25, 4,25, 5,29, 5,29 hkrss-patterns,52, 4,25, 4,25, 4,25, 4,25, 5,29, 5,29
hkrss-patterns,53, 3,22, 3,22, 3,22, 3,22 hkrss-patterns,53, 3,22, 3,22, 3,22, 3,22, 3,22, 3,22
hkrss-patterns,54, 3,22, 3,22, 3,22, 3,22 hkrss-patterns,54, 3,22, 3,22, 3,22, 3,22, 3,22, 3,22
hkrss-patterns,55, 5,8, 5,8, 5,8, 5,8 hkrss-patterns,55, 5,8, 5,8, 5,8, 5,8, 5,8, 5,8
p-patterns,2, 4,36, 4,36, 5,44, 5,44 p-patterns,2, 4,36, 4,36, 4,36, 4,36, 5,44, 5,44
p-patterns,3, 2,20, 2,20, 2,20, 2,20 p-patterns,3, 2,20, 2,20, 2,20, 2,20, 2,20, 2,20
p-patterns,4, 2,8, 2,8, 2,8, 2,8 p-patterns,4, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
p-patterns,5, 1,4, 1,4, 2,8, 2,8 p-patterns,5, 1,4, 1,4, 1,4, 1,4, 2,8, 2,8
p-patterns,6, 4,50, 4,50, 4,50, 4,50 p-patterns,6, 4,50, 4,50, 4,50, 4,50, 4,50, 4,50
p-patterns,7, 4,27, 4,27, 4,27, 4,27 p-patterns,7, 4,27, 4,27, 4,27, 4,27, 4,27, 4,27
p-patterns,8, 2,10, 2,10, 2,10, 2,10 p-patterns,8, 2,10, 2,10, 2,10, 2,10, 2,10, 2,10
p-patterns,9, 1,2, 1,2, 2,4, 2,4 p-patterns,9, 1,2, 1,2, 1,2, 1,2, 2,4, 2,4
p-patterns,10, 2,16, 2,16, 2,16, 2,16 p-patterns,10, 2,16, 2,16, 2,16, 2,16, 2,16, 2,16
p-patterns,11, 2,20, 2,20, 2,20, 2,20 p-patterns,11, 2,20, 2,20, 2,20, 2,20, 2,20, 2,20
p-patterns,12, 3,12, 3,12, 3,12, 3,12 p-patterns,12, 3,12, 3,12, 3,12, 3,12, 3,12, 3,12
p-patterns,13, 3,20, 3,20, 3,20, 3,20 p-patterns,13, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
p-patterns,14, 2,13, 2,13, 2,13, 2,13 p-patterns,14, 2,13, 2,13, 2,13, 2,13, 2,13, 2,13
p-patterns,15, 2,7, 2,7, 2,7, 2,7 p-patterns,15, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
p-patterns,16, 2,16, 2,16, 2,16, 2,16 p-patterns,16, 2,16, 2,16, 2,16, 2,16, 2,16, 2,16
p-patterns,17, 3,20, 3,20, 3,20, 3,20 p-patterns,17, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
p-patterns,18, 5,36, 5,36, 5,36, 5,36 p-patterns,18, 5,36, 5,36, 5,36, 5,36, 5,36, 5,36
p-patterns,20, 1,8, 1,8, 3,24, 3,24 p-patterns,20, 1,8, 1,8, 2,16, 2,16, 3,24, 3,24
and-fg,32, 2,4294967298, 2,4294967298, 2,4294967298, 2,4294967298 and-fg,32, $fg42, $fg42, $fg42, $fg42, $fg42, $fg42
!dac-patterns,1, 2,4, 2,4, 2,4, 2,4 !dac-patterns,1, 2,4, 2,4, 2,4, 2,4, 2,4, 2,4
!dac-patterns,2, 3,10, 3,10, 3,10, 3,10 !dac-patterns,2, 3,10, 3,10, 3,10, 3,10, 3,10, 3,10
!dac-patterns,3, 3,12, 3,12, 3,12, 3,12 !dac-patterns,3, 3,12, 3,12, 3,12, 3,12, 3,12, 3,12
!dac-patterns,4, 4,32, 4,32, 4,32, 4,32 !dac-patterns,4, 4,32, 4,32, 4,32, 4,32, 4,32, 4,32
!dac-patterns,5, 3,24, 3,24, 3,24, 3,24 !dac-patterns,5, 3,24, 3,24, 3,24, 3,24, 3,24, 3,24
!dac-patterns,6, 1,1, 1,1, 1,1, 1,1 !dac-patterns,6, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1
!dac-patterns,7, 2,7, 2,7, 2,7, 2,7 !dac-patterns,7, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
!dac-patterns,8, 2,5, 2,5, 2,5, 2,5 !dac-patterns,8, 2,5, 2,5, 2,5, 2,5, 2,5, 2,5
!dac-patterns,9, 3,24, 3,24, 3,24, 3,24 !dac-patterns,9, 3,24, 3,24, 3,24, 3,24, 3,24, 3,24
!dac-patterns,10, 3,23, 3,23, 3,23, 3,23 !dac-patterns,10, 3,23, 3,23, 3,23, 3,23, 3,23, 3,23
!dac-patterns,11, 6,12, 6,12, 6,12, 6,12 !dac-patterns,11, 6,12, 6,12, 6,12, 6,12, 6,12, 6,12
!dac-patterns,12, 7,18, 7,18, 7,18, 7,18 !dac-patterns,12, 7,18, 7,18, 7,18, 7,18, 7,18, 7,18
!dac-patterns,13, 7,28, 7,28, 7,28, 7,28 !dac-patterns,13, 7,28, 7,28, 7,28, 7,28, 7,28, 7,28
!dac-patterns,14, 8,64, 8,64, 8,64, 8,64 !dac-patterns,14, 8,64, 8,64, 8,64, 8,64, 8,64, 8,64
!dac-patterns,15, 7,56, 7,56, 7,56, 7,56 !dac-patterns,15, 7,56, 7,56, 7,56, 7,56, 7,56, 7,56
!dac-patterns,16, 2,4, 2,4, 2,4, 2,4 !dac-patterns,16, 2,4, 2,4, 2,4, 2,4, 2,4, 2,4
!dac-patterns,17, 3,10, 3,10, 3,10, 3,10 !dac-patterns,17, 3,10, 3,10, 3,10, 3,10, 3,10, 3,10
!dac-patterns,18, 3,12, 3,12, 3,12, 3,12 !dac-patterns,18, 3,12, 3,12, 3,12, 3,12, 3,12, 3,12
!dac-patterns,19, 4,32, 4,32, 4,32, 4,32 !dac-patterns,19, 4,32, 4,32, 4,32, 4,32, 4,32, 4,32
!dac-patterns,20, 3,24, 3,24, 3,24, 3,24 !dac-patterns,20, 3,24, 3,24, 3,24, 3,24, 3,24, 3,24
!dac-patterns,21, 2,6, 2,6, 2,6, 2,6 !dac-patterns,21, 2,6, 2,6, 2,6, 2,6, 2,6, 2,6
!dac-patterns,22, 3,18, 3,18, 3,18, 3,18 !dac-patterns,22, 3,18, 3,18, 3,18, 3,18, 3,18, 3,18
!dac-patterns,23, 3,16, 3,16, 3,16, 3,16 !dac-patterns,23, 3,16, 3,16, 3,16, 3,16, 3,16, 3,16
!dac-patterns,24, 4,64, 4,64, 4,64, 4,64 !dac-patterns,24, 4,64, 4,64, 4,64, 4,64, 4,64, 4,64
!dac-patterns,25, 3,48, 3,48, 3,48, 3,48 !dac-patterns,25, 3,48, 3,48, 3,48, 3,48, 3,48, 3,48
!dac-patterns,26, 2,7, 2,7, 2,7, 2,7 !dac-patterns,26, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
!dac-patterns,27, 3,20, 3,20, 3,20, 3,20 !dac-patterns,27, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
!dac-patterns,28, 3,23, 3,23, 3,23, 3,23 !dac-patterns,28, 3,23, 3,23, 3,23, 3,23, 3,23, 3,23
!dac-patterns,29, 4,64, 4,64, 4,64, 4,64 !dac-patterns,29, 4,64, 4,64, 4,64, 4,64, 4,64, 4,64
!dac-patterns,30, 4,54, 4,54, 4,54, 4,54 !dac-patterns,30, 4,54, 4,54, 4,54, 4,54, 4,54, 4,54
!dac-patterns,31, 3,20, 3,20, 3,20, 3,20 !dac-patterns,31, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
!dac-patterns,32, 4,44, 4,44, 4,44, 4,44 !dac-patterns,32, 4,44, 4,44, 4,44, 4,44, 4,44, 4,44
!dac-patterns,33, 4,48, 4,48, 4,48, 4,48 !dac-patterns,33, 4,48, 4,48, 4,48, 4,48, 4,48, 4,48
!dac-patterns,34, 5,160, 5,160, 5,160, 5,160 !dac-patterns,34, 5,160, 5,160, 5,160, 5,160, 5,160, 5,160
!dac-patterns,35, 4,128, 4,128, 4,128, 4,128 !dac-patterns,35, 4,128, 4,128, 4,128, 4,128, 4,128, 4,128
!dac-patterns,36, 3,20, 3,20, 3,20, 3,20 !dac-patterns,36, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
!dac-patterns,37, 4,44, 4,44, 4,44, 4,44 !dac-patterns,37, 4,44, 4,44, 4,44, 4,44, 4,44, 4,44
!dac-patterns,38, 4,52, 4,52, 4,52, 4,52 !dac-patterns,38, 4,52, 4,52, 4,52, 4,52, 4,52, 4,52
!dac-patterns,39, 5,160, 5,160, 5,160, 5,160 !dac-patterns,39, 5,160, 5,160, 5,160, 5,160, 5,160, 5,160
!dac-patterns,40, 4,128, 4,128, 4,128, 4,128 !dac-patterns,40, 4,128, 4,128, 4,128, 4,128, 4,128, 4,128
!dac-patterns,41, 3,20, 3,20, 3,20, 3,20 !dac-patterns,41, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
!dac-patterns,42, 4,34, 5,50, 4,34, 5,50 !dac-patterns,42, 4,34, 5,50, 4,34, 5,50, 4,34, 5,50
!dac-patterns,43, 4,60, 4,60, 4,60, 4,60 !dac-patterns,43, 4,60, 4,60, 4,60, 4,60, 4,60, 4,60
!dac-patterns,44, 5,100, 5,100, 5,100, 5,100 !dac-patterns,44, 5,100, 5,100, 5,100, 5,100, 5,100, 5,100
!dac-patterns,45, 4,84, 4,84, 4,84, 4,84 !dac-patterns,45, 4,84, 4,84, 4,84, 4,84, 4,84, 4,84
!dac-patterns,46, 3,24, 3,24, 3,24, 3,24 !dac-patterns,46, 3,24, 3,24, 3,24, 3,24, 3,24, 3,24
!dac-patterns,47, 4,52, 4,52, 4,52, 4,52 !dac-patterns,47, 4,52, 4,52, 4,52, 4,52, 4,52, 4,52
!dac-patterns,48, 4,62, 4,62, 4,62, 4,62 !dac-patterns,48, 4,62, 4,62, 4,62, 4,62, 4,62, 4,62
!dac-patterns,49, 5,160, 5,160, 5,160, 5,160 !dac-patterns,49, 5,160, 5,160, 5,160, 5,160, 5,160, 5,160
!dac-patterns,50, 8,224, 8,224, 9,252, 9,252 !dac-patterns,50, 8,224, 8,224, 8,224, 8,224, 9,252, 9,252
!dac-patterns,51, 3,48, 3,48, 3,48, 3,48 !dac-patterns,51, 3,48, 3,48, 3,48, 3,48, 3,48, 3,48
!dac-patterns,52, 4,104, 4,104, 4,104, 4,104 !dac-patterns,52, 4,104, 4,104, 4,104, 4,104, 4,104, 4,104
!dac-patterns,53, 4,118, 4,118, 4,118, 4,118 !dac-patterns,53, 4,118, 4,118, 4,118, 4,118, 4,118, 4,118
!dac-patterns,54, 5,320, 5,320, 5,320, 5,320 !dac-patterns,54, 5,320, 5,320, 5,320, 5,320, 5,320, 5,320
!dac-patterns,55, 11,540, 11,540, 13,610, 13,610 !dac-patterns,55, 11,540, 11,540, 11,540, 11,540, 13,610, 13,610
!eh-patterns,1, 4,32, 4,32, 4,32, 4,32 !eh-patterns,1, 4,32, 4,32, 4,32, 4,32, 4,32, 4,32
!eh-patterns,2, 4,48, 4,48, 4,48, 4,48 !eh-patterns,2, 4,48, 4,48, 4,48, 4,48, 4,48, 4,48
!eh-patterns,3, 8,960, 8,960, 8,960, 8,960 !eh-patterns,3, 8,960, 8,960, 8,960, 8,960, 8,960, 8,960
!eh-patterns,4, 2,8, 2,8, 3,12, 3,12 !eh-patterns,4, 2,8, 2,8, 2,8, 2,8, 3,12, 3,12
!eh-patterns,5, 3,20, 3,20, 3,20, 3,20 !eh-patterns,5, 3,20, 3,20, 3,20, 3,20, 3,20, 3,20
!eh-patterns,6, 2,12, 2,12, 2,12, 2,12 !eh-patterns,6, 2,12, 2,12, 2,12, 2,12, 2,12, 2,12
!eh-patterns,7, 2,7, 2,7, 3,9, 3,9 !eh-patterns,7, 2,7, 2,7, 2,7, 2,7, 3,9, 3,9
!eh-patterns,8, 3,21, 3,21, 3,21, 3,21 !eh-patterns,8, 3,21, 3,21, 3,21, 3,21, 3,21, 3,21
!eh-patterns,9, 5,68, 5,68, 5,68, 5,68 !eh-patterns,9, 5,68, 5,68, 5,68, 5,68, 5,68, 5,68
!eh-patterns,10, 6,192, 6,192, 6,192, 6,192 !eh-patterns,10, 6,192, 6,192, 6,192, 6,192, 6,192, 6,192
!eh-patterns,11, 2,9, 2,9, 2,9, 2,9 !eh-patterns,11, 2,9, 2,9, 2,9, 2,9, 2,9, 2,9
!eh-patterns,12, 6,103, 6,103, 8,135, 8,135 !eh-patterns,12, 6,103, 6,103, 7,119, 7,119, 8,135, 8,135
!sb-patterns,1, 2,6, 2,6, 2,6, 2,6 !sb-patterns,1, 2,6, 2,6, 2,6, 2,6, 2,6, 2,6
!sb-patterns,5, 2,7, 2,7, 3,12, 3,12 !sb-patterns,5, 2,7, 2,7, 2,7, 2,7, 3,12, 3,12
!sb-patterns,6, 3,11, 4,14, 3,11, 4,14 !sb-patterns,6, 3,11, 4,14, 3,11, 4,14, 3,11, 4,14
!sb-patterns,7, 4,16, 4,16, 4,16, 4,16 !sb-patterns,7, 4,16, 4,16, 4,16, 4,16, 4,16, 4,16
!sb-patterns,9, 3,13, 3,13, 5,21, 5,21 !sb-patterns,9, 3,13, 3,13, 4,17, 4,17, 5,21, 5,21
!sb-patterns,10, 2,6, 2,6, 2,6, 2,6 !sb-patterns,10, 2,6, 2,6, 2,6, 2,6, 2,6, 2,6
!sb-patterns,11, 1,0, 1,0, 1,0, 1,0 !sb-patterns,11, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0
!sb-patterns,12, 1,0, 1,0, 1,0, 1,0 !sb-patterns,12, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0
!sb-patterns,13, 2,7, 2,7, 2,7, 2,7 !sb-patterns,13, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
!sb-patterns,14, 2,7, 2,7, 2,7, 2,7 !sb-patterns,14, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
!sb-patterns,16, 2,12, 2,12, 2,12, 2,12 !sb-patterns,16, 2,12, 2,12, 2,12, 2,12, 2,12, 2,12
!sb-patterns,17, 3,12, 3,12, 3,12, 3,12 !sb-patterns,17, 3,12, 3,12, 3,12, 3,12, 3,12, 3,12
!sb-patterns,18, 3,12, 3,12, 3,12, 3,12 !sb-patterns,18, 3,12, 3,12, 3,12, 3,12, 3,12, 3,12
!sb-patterns,19, 3,4, 3,4, 3,4, 3,4 !sb-patterns,19, 3,4, 3,4, 3,4, 3,4, 3,4, 3,4
!sb-patterns,20, 4,37, 5,37, 4,37, 5,37 !sb-patterns,20, 4,37, 5,37, 4,37, 5,37, 4,37, 5,37
!sb-patterns,25, 4,32, 4,32, 4,32, 4,32 !sb-patterns,25, 4,32, 4,32, 4,32, 4,32, 4,32, 4,32
!sb-patterns,26, 2,4, 2,4, 2,4, 2,4 !sb-patterns,26, 2,4, 2,4, 2,4, 2,4, 2,4, 2,4
!sb-patterns,27, 2,6, 2,6, 2,6, 2,6 !sb-patterns,27, 2,6, 2,6, 2,6, 2,6, 2,6, 2,6
!hkrss-patterns,1, 3,6, 3,6, 3,6, 3,6 !hkrss-patterns,1, 3,6, 3,6, 3,6, 3,6, 3,6, 3,6
!hkrss-patterns,2, 3,6, 3,6, 3,6, 3,6 !hkrss-patterns,2, 3,6, 3,6, 3,6, 3,6, 3,6, 3,6
!hkrss-patterns,3, 5,12, 5,12, 5,12, 5,12 !hkrss-patterns,3, 5,12, 5,12, 5,12, 5,12, 5,12, 5,12
!hkrss-patterns,4, 17,48, 17,48, 17,48, 17,48 !hkrss-patterns,4, 17,48, 17,48, 17,48, 17,48, 17,48, 17,48
!hkrss-patterns,6, 3,6, 3,6, 3,6, 3,6 !hkrss-patterns,6, 3,6, 3,6, 3,6, 3,6, 3,6, 3,6
!hkrss-patterns,7, 2,8, 2,8, 2,8, 2,8 !hkrss-patterns,7, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
!hkrss-patterns,8, 1,0, 1,0, 1,0, 1,0 !hkrss-patterns,8, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0
!hkrss-patterns,9, 2,7, 2,7, 2,7, 2,7 !hkrss-patterns,9, 2,7, 2,7, 2,7, 2,7, 2,7, 2,7
!hkrss-patterns,11, 2,11, 2,11, 2,11, 2,11 !hkrss-patterns,11, 2,11, 2,11, 2,11, 2,11, 2,11, 2,11
!hkrss-patterns,12, 2,19, 2,19, 2,19, 2,19 !hkrss-patterns,12, 2,19, 2,19, 2,19, 2,19, 2,19, 2,19
!hkrss-patterns,13, 5,1024, 5,1024, 5,1024, 5,1024 !hkrss-patterns,13, 5,1024, 5,1024, 5,1024, 5,1024, 5,1024, 5,1024
!hkrss-patterns,14, 2,8, 2,8, 2,8, 2,8 !hkrss-patterns,14, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
!hkrss-patterns,15, 2,8, 2,8, 2,8, 2,8 !hkrss-patterns,15, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
!hkrss-patterns,16, 2,8, 2,8, 2,8, 2,8 !hkrss-patterns,16, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
!hkrss-patterns,17, 2,8, 2,8, 2,8, 2,8 !hkrss-patterns,17, 2,8, 2,8, 2,8, 2,8, 2,8, 2,8
!hkrss-patterns,18, 2,16, 2,16, 2,16, 2,16 !hkrss-patterns,18, 2,16, 2,16, 2,16, 2,16, 2,16, 2,16
!hkrss-patterns,19, 2,64, 2,64, 2,64, 2,64 !hkrss-patterns,19, 2,64, 2,64, 2,64, 2,64, 2,64, 2,64
!hkrss-patterns,20, 2,64, 2,64, 2,64, 2,64 !hkrss-patterns,20, 2,64, 2,64, 2,64, 2,64, 2,64, 2,64
!hkrss-patterns,21, 2,1007, 2,1007, 2,1007, 2,1007 !hkrss-patterns,21, 2,1007, 2,1007, 2,1007, 2,1007, 2,1007, 2,1007
!hkrss-patterns,22, 2,1007, 2,1007, 2,1007, 2,1007 !hkrss-patterns,22, 2,1007, 2,1007, 2,1007, 2,1007, 2,1007, 2,1007
!hkrss-patterns,23, 2,128, 2,128, 2,128, 2,128 !hkrss-patterns,23, 2,128, 2,128, 2,128, 2,128, 2,128, 2,128
!hkrss-patterns,24, 2,128, 2,128, 2,128, 2,128 !hkrss-patterns,24, 2,128, 2,128, 2,128, 2,128, 2,128, 2,128
!hkrss-patterns,25, 2,128, 2,128, 2,128, 2,128 !hkrss-patterns,25, 2,128, 2,128, 2,128, 2,128, 2,128, 2,128
!hkrss-patterns,26, 2,256, 2,256, 2,256, 2,256 !hkrss-patterns,26, 2,256, 2,256, 2,256, 2,256, 2,256, 2,256
!hkrss-patterns,27, 2,256, 2,256, 2,256, 2,256 !hkrss-patterns,27, 2,256, 2,256, 2,256, 2,256, 2,256, 2,256
!hkrss-patterns,28, 2,512, 2,512, 2,512, 2,512 !hkrss-patterns,28, 2,512, 2,512, 2,512, 2,512, 2,512, 2,512
!hkrss-patterns,29, 4,64, 4,64, 4,64, 4,64 !hkrss-patterns,29, 4,64, 4,64, 4,64, 4,64, 4,64, 4,64
!hkrss-patterns,30, 6,48, 6,48, 6,48, 6,48 !hkrss-patterns,30, 6,48, 6,48, 6,48, 6,48, 6,48, 6,48
!hkrss-patterns,31, 1,0, 1,0, 1,0, 1,0 !hkrss-patterns,31, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0
!hkrss-patterns,32, 4,42, 4,42, 4,42, 4,42 !hkrss-patterns,32, 4,42, 4,42, 4,42, 4,42, 4,42, 4,42
!hkrss-patterns,33, 4,42, 4,42, 4,42, 4,42 !hkrss-patterns,33, 4,42, 4,42, 4,42, 4,42, 4,42, 4,42
!hkrss-patterns,34, 3,24, 3,24, 3,24, 3,24 !hkrss-patterns,34, 3,24, 3,24, 3,24, 3,24, 3,24, 3,24
!hkrss-patterns,35, 3,12, 3,12, 3,12, 3,12 !hkrss-patterns,35, 3,12, 3,12, 3,12, 3,12, 3,12, 3,12
!hkrss-patterns,36, 19,784, 19,784, 19,784, 19,784 !hkrss-patterns,36, 19,784, 19,784, 19,784, 19,784, 19,784, 19,784
!hkrss-patterns,37, 3,48, 3,48, 3,48, 3,48 !hkrss-patterns,37, 3,48, 3,48, 3,48, 3,48, 3,48, 3,48
!hkrss-patterns,38, 3,12, 3,12, 3,12, 3,12 !hkrss-patterns,38, 3,12, 3,12, 3,12, 3,12, 3,12, 3,12
!hkrss-patterns,39, 4,16, 4,16, 4,16, 4,16 !hkrss-patterns,39, 4,16, 4,16, 4,16, 4,16, 4,16, 4,16
!hkrss-patterns,40, 5,19, 5,19, 5,19, 5,19 !hkrss-patterns,40, 5,19, 5,19, 5,19, 5,19, 5,19, 5,19
!hkrss-patterns,41, 7,27, 7,27, 7,27, 7,27 !hkrss-patterns,41, 7,27, 7,27, 7,27, 7,27, 7,27, 7,27
!hkrss-patterns,42, 7,27, 7,27, 7,27, 7,27 !hkrss-patterns,42, 7,27, 7,27, 7,27, 7,27, 7,27, 7,27
!hkrss-patterns,43, 9,35, 9,35, 9,35, 9,35 !hkrss-patterns,43, 9,35, 9,35, 9,35, 9,35, 9,35, 9,35
!hkrss-patterns,44, 7,24, 7,24, 7,24, 7,24 !hkrss-patterns,44, 7,24, 7,24, 7,24, 7,24, 7,24, 7,24
!hkrss-patterns,45, 13,26, 13,26, 13,26, 13,26 !hkrss-patterns,45, 13,26, 13,26, 13,26, 13,26, 13,26, 13,26
!hkrss-patterns,46, 6,24, 6,24, 6,24, 6,24 !hkrss-patterns,46, 6,24, 6,24, 6,24, 6,24, 6,24, 6,24
!hkrss-patterns,47, 6,24, 6,24, 6,24, 6,24 !hkrss-patterns,47, 6,24, 6,24, 6,24, 6,24, 6,24, 6,24
!hkrss-patterns,48, 3,96, 3,96, 4,128, 4,128 !hkrss-patterns,48, 3,96, 3,96, 3,96, 3,96, 4,128, 4,128
!hkrss-patterns,49, 2,6, 2,6, 2,6, 2,6 !hkrss-patterns,49, 2,6, 2,6, 2,6, 2,6, 2,6, 2,6
!hkrss-patterns,50, 2,6, 2,6, 2,6, 2,6 !hkrss-patterns,50, 2,6, 2,6, 2,6, 2,6, 2,6, 2,6
!hkrss-patterns,51, 3,6, 3,6, 3,6, 3,6 !hkrss-patterns,51, 3,6, 3,6, 3,6, 3,6, 3,6, 3,6
!hkrss-patterns,52, 5,37, 5,37, 5,37, 5,37 !hkrss-patterns,52, 5,37, 5,37, 5,37, 5,37, 5,37, 5,37
!hkrss-patterns,53, 4,32, 4,32, 4,32, 4,32 !hkrss-patterns,53, 4,32, 4,32, 4,32, 4,32, 4,32, 4,32
!hkrss-patterns,54, 4,32, 4,32, 4,32, 4,32 !hkrss-patterns,54, 4,32, 4,32, 4,32, 4,32, 4,32, 4,32
!hkrss-patterns,55, 5,12, 6,12, 5,12, 6,12 !hkrss-patterns,55, 5,12, 6,12, 5,12, 6,12, 5,12, 6,12
!p-patterns,2, 2,15, 2,15, 4,23, 4,23 !p-patterns,2, 2,15, 2,15, 3,19, 3,19, 4,23, 4,23
!p-patterns,3, 3,41, 3,41, 3,41, 3,41 !p-patterns,3, 3,41, 3,41, 3,41, 3,41, 3,41, 3,41
!p-patterns,4, 1,1, 1,1, 1,1, 1,1 !p-patterns,4, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1
!p-patterns,5, 2,6, 2,6, 2,6, 2,6 !p-patterns,5, 2,6, 2,6, 2,6, 2,6, 2,6, 2,6
!p-patterns,6, 4,42, 4,42, 4,42, 4,42 !p-patterns,6, 4,42, 4,42, 4,42, 4,42, 4,42, 4,42
!p-patterns,7, 5,34, 5,34, 5,34, 5,34 !p-patterns,7, 5,34, 5,34, 5,34, 5,34, 5,34, 5,34
!p-patterns,8, 3,24, 3,24, 3,24, 3,24 !p-patterns,8, 3,24, 3,24, 3,24, 3,24, 3,24, 3,24
!p-patterns,9, 2,4, 2,4, 2,4, 2,4 !p-patterns,9, 2,4, 2,4, 2,4, 2,4, 2,4, 2,4
!p-patterns,10, 2,11, 2,11, 2,11, 2,11 !p-patterns,10, 2,11, 2,11, 2,11, 2,11, 2,11, 2,11
!p-patterns,11, 3,48, 3,48, 3,48, 3,48 !p-patterns,11, 3,48, 3,48, 3,48, 3,48, 3,48, 3,48
!p-patterns,12, 2,4, 2,4, 2,4, 2,4 !p-patterns,12, 2,4, 2,4, 2,4, 2,4, 2,4, 2,4
!p-patterns,13, 4,32, 4,32, 4,32, 4,32 !p-patterns,13, 4,32, 4,32, 4,32, 4,32, 4,32, 4,32
!p-patterns,14, 3,24, 3,24, 3,24, 3,24 !p-patterns,14, 3,24, 3,24, 3,24, 3,24, 3,24, 3,24
!p-patterns,15, 3,12, 3,12, 3,12, 3,12 !p-patterns,15, 3,12, 3,12, 3,12, 3,12, 3,12, 3,12
!p-patterns,16, 2,17, 2,17, 2,17, 2,17 !p-patterns,16, 2,17, 2,17, 2,17, 2,17, 2,17, 2,17
!p-patterns,17, 4,31, 4,31, 4,31, 4,31 !p-patterns,17, 4,31, 4,31, 4,31, 4,31, 4,31, 4,31
!p-patterns,18, 6,43, 6,43, 6,43, 6,43 !p-patterns,18, 6,43, 6,43, 6,43, 6,43, 6,43, 6,43
!p-patterns,20, 3,16, 3,16, 3,16, 3,16 !p-patterns,20, 3,16, 3,16, 3,16, 3,16, 3,16, 3,16
!and-fg,32, 1,4294967296, 1,4294967296, 2,8589934592, 2,8589934592 !and-fg,32, $gf42, $gf42, $gf42, $gf42, 2,8589934592, 2,8589934592
EOF EOF
diff output expected diff output expected

View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2012-2017 Laboratoire de Recherche et Développement de # Copyright (C) 2012-2017, 2020 Laboratoire de Recherche et
# l'Epita (LRDE). # Développement de l'Epita (LRDE).
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
# #
@ -37,10 +37,11 @@ ltlcross --products=3 --timeout=60 \
"ltl2tgba --lbtt -x comp-susp,early-susp --small %f >%T" \ "ltl2tgba --lbtt -x comp-susp,early-susp --small %f >%T" \
"ltl2tgba --lbtt -x comp-susp,!skel-wdba,!skel-simul --small %f >%T" \ "ltl2tgba --lbtt -x comp-susp,!skel-wdba,!skel-simul --small %f >%T" \
"ltl2tgba --spin --ba -x degen-lskip=0 %f >%N" \ "ltl2tgba --spin --ba -x degen-lskip=0 %f >%N" \
"ltl2tgba --lbtt --ba --high %f > %T" \ "ltl2tgba --lbtt --sba --high %f > %T" \
"ltl2tgba --buchi %f > %T" \
"ltl2tgba --spin=6 --ba -x degen-order,degen-lcache=2 --medium %f > %N" \ "ltl2tgba --spin=6 --ba -x degen-order,degen-lcache=2 --medium %f > %N" \
"ltl2tgba --hoa -x degen-lcache=3 -BDC %f > %H" \ "ltl2tgba --hoa -x degen-lcache=3 -BDC %f > %H" \
"ltl2tgba --lbtt -BC %f > %T" \ "ltl2tgba --lbtt -BC %f > %T" \
"ltl2tgba --lbtt --unambiguous --low %f > %T" \ "ltl2tgba --lbtt --unambiguous -x exprop=0 --low %f > %T" \
"ltl2tgba --lbtt --unambiguous --high %f > %T" \ "ltl2tgba --lbtt --unambiguous --high %f > %T" \
--json=output.json --csv=output.csv --json=output.json --csv=output.csv

View file

@ -52,6 +52,12 @@ grep 'ba.*incompatible' stderr
randaut --ba -A0 3 2>stderr && exit 1 randaut --ba -A0 3 2>stderr && exit 1
grep 'ba.*incompatible' stderr grep 'ba.*incompatible' stderr
randaut --buchi -A2 3 2>stderr && exit 1
grep 'buchi.*incompatible' stderr
randaut -b 2 | autfilt --acceptance-is=Buchi | grep trans-acc
randaut -B 2 | autfilt --acceptance-is=Buchi | grep state-acc
randaut --states 10..20 2 -n 100 -H > aut.hoa randaut --states 10..20 2 -n 100 -H > aut.hoa
a=`autfilt --states=..14 -c <aut.hoa` a=`autfilt --states=..14 -c <aut.hoa`
b=`autfilt aut.hoa --states=15.. -c` b=`autfilt aut.hoa --states=15.. -c`

View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2015, 2016, 2017 Laboratoire de Recherche et # Copyright (C) 2015-2017, 2020 Laboratoire de Recherche et
# Développement de l'Epita (LRDE). # Développement de l'Epita (LRDE).
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
@ -127,7 +127,7 @@ EOF
diff out.hoa expected diff out.hoa expected
autfilt --sba -H expected > out.hoa autfilt --sbacc -H expected > out.hoa
diff out.hoa expected diff out.hoa expected
autfilt --strip-acc -H expected -n1 > out.hoa autfilt --strip-acc -H expected -n1 > out.hoa