Commit f9029858 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

org: Update results to new output

The dotty output changed to be horizontal, and also
the acceptance sets are now numbers.

* doc/org/dstar2tgba.org, doc/org/ltl2tgba.org, doc/org/ltl2tgta.org,
doc/org/satmin.org: Adjust these four.
parent f8802003
......@@ -74,17 +74,18 @@ dstar2tgba -B fagfb
#+RESULTS:
#+begin_example
digraph G {
0 [label="", style=invis, height=0]
0 -> 1
1 [label="1"]
1 -> 2 [label="a\n"]
1 -> 1 [label="!a\n"]
2 [label="2", peripheries=2]
2 -> 2 [label="b\n{Acc[1]}"]
2 -> 3 [label="!b\n{Acc[1]}"]
3 [label="3"]
3 -> 2 [label="b\n"]
3 -> 3 [label="!b\n"]
rankdir=LR
I [label="", style=invis, width=0]
I -> 0
0 [label="0"]
0 -> 0 [label="!a"]
0 -> 1 [label="a"]
1 [label="1", peripheries=2]
1 -> 1 [label="b"]
1 -> 2 [label="!b"]
2 [label="2"]
2 -> 1 [label="b"]
2 -> 2 [label="!b"]
}
#+end_example
......@@ -97,17 +98,18 @@ dstar2tgba -B fagfb | sed 's/\\/\\\\/'
#+RESULTS: fagfb2ba
#+begin_example
digraph G {
0 [label="", style=invis, height=0]
0 -> 1
1 [label="1"]
1 -> 2 [label="a\\n"]
1 -> 1 [label="!a\\n"]
2 [label="2", peripheries=2]
2 -> 2 [label="b\\n{Acc[1]}"]
2 -> 3 [label="!b\\n{Acc[1]}"]
3 [label="3"]
3 -> 2 [label="b\\n"]
3 -> 3 [label="!b\\n"]
rankdir=LR
I [label="", style=invis, width=0]
I -> 0
0 [label="0"]
0 -> 0 [label="!a"]
0 -> 1 [label="a"]
1 [label="1", peripheries=2]
1 -> 1 [label="b"]
1 -> 2 [label="!b"]
2 [label="2"]
2 -> 1 [label="b"]
2 -> 2 [label="!b"]
}
#+end_example
......@@ -127,8 +129,8 @@ dstar2tgba -s fagfb
never {
T0_init:
if
:: ((a)) -> goto accept_S2
:: ((!(a))) -> goto T0_init
:: ((a)) -> goto accept_S2
fi;
accept_S2:
if
......@@ -199,15 +201,16 @@ dstar2tgba gfagfb
#+RESULTS:
#+begin_example
digraph G {
0 [label="", style=invis, height=0]
0 -> 1
rankdir=LR
I [label="", style=invis, width=0]
I -> 0
0 [label="0"]
0 -> 1 [label="1"]
1 [label="1"]
1 -> 2 [label="1\n"]
2 [label="2"]
2 -> 2 [label="a & b\n{Acc[\"1\"], Acc[\"0\"]}"]
2 -> 2 [label="b & !a\n{Acc[\"1\"]}"]
2 -> 2 [label="a & !b\n{Acc[\"0\"]}"]
2 -> 2 [label="!a & !b\n"]
1 -> 1 [label="!a & !b"]
1 -> 1 [label="a & !b\n{0}"]
1 -> 1 [label="!a & b\n{1}"]
1 -> 1 [label="a & b\n{0,1}"]
}
#+end_example
......@@ -218,15 +221,16 @@ dstar2tgba gfagfb | sed 's/\\/\\\\/g'
#+RESULTS: gfagfb2ba
#+begin_example
digraph G {
0 [label="", style=invis, height=0]
0 -> 1
rankdir=LR
I [label="", style=invis, width=0]
I -> 0
0 [label="0"]
0 -> 1 [label="1"]
1 [label="1"]
1 -> 2 [label="1\\n"]
2 [label="2"]
2 -> 2 [label="a & b\\n{Acc[\\"1\\"], Acc[\\"0\\"]}"]
2 -> 2 [label="b & !a\\n{Acc[\\"1\\"]}"]
2 -> 2 [label="a & !b\\n{Acc[\\"0\\"]}"]
2 -> 2 [label="!a & !b\\n"]
1 -> 1 [label="!a & !b"]
1 -> 1 [label="a & !b\\n{0}"]
1 -> 1 [label="!a & b\\n{1}"]
1 -> 1 [label="a & b\\n{0,1}"]
}
#+end_example
......@@ -293,25 +297,36 @@ dstar2tgba --help | sed -n '/Optimization level:/,/^$/p' | sed '1d;$d'
For instance using =-a --low= will skip any optional post-processing,
should you find =dstar2tgba= too slow.
Finally, the output format can be changed with the following options:
Finally, the output format can be changed with the following
[[file:oaout.org][common ouput options]]:
#+BEGIN_SRC sh :results verbatim :exports results
dstar2tgba --help | sed -n '/Output format:/,/^$/p' | sed '1d;$d'
#+END_SRC
#+RESULTS:
: -8, --utf8 enable UTF-8 characters in output (ignored with
: --lbtt or --spin)
: --dot GraphViz's format (default)
: --lbtt[=t] LBTT's format (add =t to force transition-based
: acceptance even on Büchi automata)
: -s, --spin Spin neverclaim (implies --ba)
: --spot SPOT's format
: --stats=FORMAT output statistics about the automaton
#+begin_example
-8, --utf8 enable UTF-8 characters in output (ignored with
--lbtt or --spin)
--dot[=c|h|n|N|s|t|v] GraphViz's format (default). Add letters to chose
(c) circular nodes, (h) horizontal layout, (v)
vertical layout, (n) with name, (N) without name,
(s) with SCCs, (t) always transition-based
acceptance.
-H, --hoaf[=s|t|m|l] Output the automaton in HOA format. Add letters
to select (s) state-based acceptance, (t)
transition-based acceptance, (m) mixed acceptance,
(l) single-line output
--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
-s, --spin Spin neverclaim (implies --ba)
--spot SPOT's format
--stats=FORMAT output statistics about the automaton
#+end_example
The =--stats= options can output statistics about the input and the
output automaton, so it can be useful to search for particular
pattern.
For instance here is a complex command that will
1. generate an infinite stream of random LTL formulas with [[file:randltl.org][=randltl=]],
......@@ -333,7 +348,7 @@ output (Büchi) automaton, =%d=, whether the output automaton is
deterministic, and =%p= whether the automaton is complete.
#+BEGIN_SRC sh :results verbatim :exports both
randltl -n -1 --tree-size=10..15 a b c |
randltl -n -1 --tree-size=10..14 a b c |
ltlfilt --remove-wm -r -u --size-min=3 |
head -n 10 |
while read f; do
......@@ -346,26 +361,26 @@ done
#+RESULTS:
#+begin_example
F(a | !b)
DRA: 2st.; BA: 2st.; det.? 1; complete? 1
Fa | (Xc U (c & Xc))
DRA: 5st.; BA: 5st.; det.? 1; complete? 1
X(((!b & XGc) | (b & XF!c)) U (!a & ((!b & XGc) | (b & XF!c))))
DRA: 8st.; BA: 7st.; det.? 1; complete? 0
!b | !a
c U (c & (a | b | (Xc U (a & Xc))))
DRA: 3st.; BA: 2st.; det.? 1; complete? 0
F!a
DRA: 2st.; BA: 2st.; det.? 1; complete? 1
F(Ga R (b | Ga))
DRA: 10st.; BA: 10st.; det.? 0; complete? 0
!c U (!c & !a)
!b | F!c
DRA: 3st.; BA: 3st.; det.? 1; complete? 1
(!a R F!b) R !b
DRA: 6st.; BA: 5st.; det.? 1; complete? 0
b U !c
DRA: 3st.; BA: 2st.; det.? 1; complete? 0
!c | FGb
DRA: 4st.; BA: 5st.; det.? 0; complete? 0
G(c U a)
GFc
DRA: 3st.; BA: 3st.; det.? 1; complete? 1
(F!c U a) R !a
DRA: 6st.; BA: 5st.; det.? 1; complete? 0
b | G!b
DRA: 4st.; BA: 3st.; det.? 1; complete? 0
c & Gb
DRA: 3st.; BA: 2st.; det.? 1; complete? 0
!a R (!c & (!a | (F!b U (!a & F!b))))
DRA: 5st.; BA: 4st.; det.? 1; complete? 0
F(a & !b & G!c)
DRA: 2st.; BA: 3st.; det.? 0; complete? 0
GF!c
DRA: 3st.; BA: 3st.; det.? 1; complete? 1
#+end_example
An important point you should be aware of when comparing these numbers
......
This diff is collapsed.
......@@ -23,22 +23,22 @@ ltl2tgta --ta --multiple-init 'a U Gb'
#+begin_example
digraph G {
-1 [label="", style=invis, height=0]
-1 -> 1 [label="a & b"]
-1 -> 1 [label="!a & b"]
-2 [label="", style=invis, height=0]
-2 -> 2 [label="a & !b"]
-2 -> 2 [label="a & b"]
-3 [label="", style=invis, height=0]
-3 -> 3 [label="b & !a"]
1 [label="0\na & b",shape=box]
1 -> 3 [label="{a}\n"]
1 -> 2 [label="{b}\n"]
-3 -> 3 [label="a & !b"]
1 [label="2\n!a & b",shape=box]
1 -> 4 [label="{a}\n"]
2 [label="1\na & !b"]
2 -> 1 [label="{b}\n"]
2 -> 3 [label="{a, b}\n"]
3 [label="2\nb & !a",shape=box]
3 -> 4 [label="{a}\n"]
2 [label="1\na & b",shape=box]
2 -> 4 [label="{a}\n"]
2 -> 1 [label="{a}\n"]
2 -> 3 [label="{b}\n"]
3 [label="0\na & !b"]
3 -> 2 [label="{b}\n"]
3 -> 1 [label="{a, b}\n"]
4 [label="3",peripheries=2,shape=box]
4 -> 4 [label="{a}\n{Acc[1]}"]
4 -> 4 [label="{a}\n{0}"]
}
#+end_example
......@@ -50,22 +50,22 @@ ltl2tgta --ta --multiple-init 'a U Gb' | sed 's/\\/\\\\/'
#+begin_example
digraph G {
-1 [label="", style=invis, height=0]
-1 -> 1 [label="a & !b"]
-1 -> 1 [label="!a & b"]
-2 [label="", style=invis, height=0]
-2 -> 2 [label="b & !a"]
-2 -> 2 [label="a & b"]
-3 [label="", style=invis, height=0]
-3 -> 3 [label="a & b"]
1 [label="2\\na & !b"]
1 -> 3 [label="{b}\\n"]
1 -> 2 [label="{a, b}\\n"]
2 [label="0\\nb & !a",shape=box]
-3 -> 3 [label="a & !b"]
1 [label="2\\n!a & b",shape=box]
1 -> 4 [label="{a}\\n"]
2 [label="1\\na & b",shape=box]
2 -> 4 [label="{a}\\n"]
3 [label="1\\na & b",shape=box]
3 -> 2 [label="{a}\\n"]
3 -> 1 [label="{b}\\n"]
3 -> 4 [label="{a}\\n"]
2 -> 1 [label="{a}\\n"]
2 -> 3 [label="{b}\\n"]
3 [label="0\\na & !b"]
3 -> 2 [label="{b}\\n"]
3 -> 1 [label="{a, b}\\n"]
4 [label="3",peripheries=2,shape=box]
4 -> 4 [label="{a}\\n{Acc[1]}"]
4 -> 4 [label="{a}\\n{0}"]
}
#+end_example
......@@ -104,7 +104,7 @@ digraph G {
0 [label="", style=invis, height=0]
0 -> 1
1 [label=init]
1 -> 2 [label="b & !a\n"]
1 -> 2 [label="!a & b\n"]
1 -> 3 [label="a & b\n"]
1 -> 4 [label="a & !b\n"]
2 [label="2",shape=box]
......@@ -117,7 +117,7 @@ digraph G {
4 -> 3 [label="{b}\n"]
4 -> 2 [label="{a, b}\n"]
5 [label="4",peripheries=2,shape=box]
5 -> 5 [label="{a}\n{Acc[1]}"]
5 -> 5 [label="{a}\n{0}"]
}
#+end_example
......@@ -131,20 +131,20 @@ digraph G {
0 [label="", style=invis, height=0]
0 -> 1
1 [label=init]
1 -> 2 [label="b & !a\\n"]
1 -> 2 [label="!a & b\\n"]
1 -> 3 [label="a & b\\n"]
1 -> 4 [label="a & !b\\n"]
2 [label="2",shape=box]
2 -> 5 [label="{a}\\n"]
3 [label="3",shape=box]
3 -> 5 [label="{a}\\n"]
3 -> 2 [label="{a}\\n"]
3 -> 4 [label="{b}\\n"]
3 -> 5 [label="{a}\\n"]
4 [label="1"]
4 -> 3 [label="{b}\\n"]
4 -> 2 [label="{a, b}\\n"]
5 [label="4",peripheries=2,shape=box]
5 -> 5 [label="{a}\\n{Acc[1]}"]
5 -> 5 [label="{a}\\n{0}"]
}
#+end_example
......@@ -157,7 +157,7 @@ $txt
The =--gba= option can be used to request a Generalized Testing
Automaton, i.e., a Testing Automaton with Generalized Büchi
acceptance. In that case double-enclosures are not used anymore, and
Büchi accepting transitions are marked with the same ={Acc[x],Acc[y]}=
Büchi accepting transitions are marked with the same ={0,1}=
notation used in TGBA.
#+BEGIN_SRC sh :results verbatim :exports code
......@@ -170,22 +170,22 @@ digraph G {
0 -> 1
1 [label=init]
1 -> 2 [label="a & b\n"]
1 -> 3 [label="b & !a\n"]
1 -> 3 [label="!a & b\n"]
1 -> 4 [label="a & !b\n"]
1 -> 5 [label="!b & !a\n"]
1 -> 5 [label="!a & !b\n"]
2 [label="1",shape=box]
2 -> 3 [label="{a}\n{Acc[b], Acc[a]}"]
2 -> 4 [label="{b}\n{Acc[b], Acc[a]}"]
2 -> 5 [label="{a, b}\n{Acc[b], Acc[a]}"]
3 [label="4"]
3 -> 2 [label="{a}\n{Acc[b]}"]
3 -> 4 [label="{a, b}\n{Acc[b]}"]
3 -> 5 [label="{b}\n{Acc[b]}"]
2 -> 3 [label="{a}\n{0,1}"]
2 -> 4 [label="{b}\n{0,1}"]
2 -> 5 [label="{a, b}\n{0,1}"]
3 [label="3"]
3 -> 2 [label="{a}\n{1}"]
3 -> 4 [label="{a, b}\n{1}"]
3 -> 5 [label="{b}\n{1}"]
4 [label="2"]
4 -> 2 [label="{b}\n{Acc[a]}"]
4 -> 3 [label="{a, b}\n{Acc[a]}"]
4 -> 5 [label="{a}\n{Acc[a]}"]
5 [label="3"]
4 -> 2 [label="{b}\n{0}"]
4 -> 3 [label="{a, b}\n{0}"]
4 -> 5 [label="{a}\n{0}"]
5 [label="4"]
5 -> 2 [label="{a, b}\n"]
5 -> 3 [label="{b}\n"]
5 -> 4 [label="{a}\n"]
......@@ -203,22 +203,22 @@ digraph G {
0 -> 1
1 [label=init]
1 -> 2 [label="a & b\\n"]
1 -> 3 [label="b & !a\\n"]
1 -> 3 [label="!a & b\\n"]
1 -> 4 [label="a & !b\\n"]
1 -> 5 [label="!b & !a\\n"]
1 -> 5 [label="!a & !b\\n"]
2 [label="1",shape=box]
2 -> 3 [label="{a}\\n{Acc[b], Acc[a]}"]
2 -> 4 [label="{b}\\n{Acc[b], Acc[a]}"]
2 -> 5 [label="{a, b}\\n{Acc[b], Acc[a]}"]
3 [label="4"]
3 -> 2 [label="{a}\\n{Acc[b]}"]
3 -> 4 [label="{a, b}\\n{Acc[b]}"]
3 -> 5 [label="{b}\\n{Acc[b]}"]
2 -> 3 [label="{a}\\n{0,1}"]
2 -> 4 [label="{b}\\n{0,1}"]
2 -> 5 [label="{a, b}\\n{0,1}"]
3 [label="3"]
3 -> 2 [label="{a}\\n{1}"]
3 -> 4 [label="{a, b}\\n{1}"]
3 -> 5 [label="{b}\\n{1}"]
4 [label="2"]
4 -> 2 [label="{b}\\n{Acc[a]}"]
4 -> 3 [label="{a, b}\\n{Acc[a]}"]
4 -> 5 [label="{a}\\n{Acc[a]}"]
5 [label="3"]
4 -> 2 [label="{b}\\n{0}"]
4 -> 3 [label="{a, b}\\n{0}"]
4 -> 5 [label="{a}\\n{0}"]
5 [label="4"]
5 -> 2 [label="{a, b}\\n"]
5 -> 3 [label="{b}\\n"]
5 -> 4 [label="{a}\\n"]
......@@ -233,7 +233,7 @@ $txt
The interpretation is similar to that of the TA. Execution that
stutter in a livelock-accepting (square) state are accepting as well
as execution that visit the =Acc[a]= and =Acc[b]= acceptance sets
as execution that visit the =0= and =1= acceptance sets
infinitely often. Those acceptance sets are carried by transitions,
as in TGBAs.
......@@ -252,23 +252,23 @@ digraph G {
0 -> 1
1 [label=init]
1 -> 2 [label="a & b\n"]
1 -> 3 [label="b & !a\n"]
1 -> 3 [label="!a & b\n"]
1 -> 4 [label="a & !b\n"]
1 -> 5 [label="!b & !a\n"]
1 -> 5 [label="!a & !b\n"]
2 [label="3"]
2 -> 3 [label="{a}\n{Acc[b], Acc[a]}"]
2 -> 4 [label="{b}\n{Acc[b], Acc[a]}"]
2 -> 5 [label="{a, b}\n{Acc[b], Acc[a]}"]
2 -> 2 [label="{}\n{Acc[b], Acc[a]}"]
3 [label="4"]
3 -> 2 [label="{a}\n{Acc[b]}"]
3 -> 4 [label="{a, b}\n{Acc[b]}"]
3 -> 5 [label="{b}\n{Acc[b]}"]
2 -> 3 [label="{a}\n{0,1}"]
2 -> 4 [label="{b}\n{0,1}"]
2 -> 5 [label="{a, b}\n{0,1}"]
2 -> 2 [label="{}\n{0,1}"]
3 [label="2"]
3 -> 2 [label="{a}\n{1}"]
3 -> 4 [label="{a, b}\n{1}"]
3 -> 5 [label="{b}\n{1}"]
3 -> 3 [label="{}\n"]
4 [label="2"]
4 -> 2 [label="{b}\n{Acc[a]}"]
4 -> 3 [label="{a, b}\n{Acc[a]}"]
4 -> 5 [label="{a}\n{Acc[a]}"]
4 [label="4"]
4 -> 2 [label="{b}\n{0}"]
4 -> 3 [label="{a, b}\n{0}"]
4 -> 5 [label="{a}\n{0}"]
4 -> 4 [label="{}\n"]
5 [label="1"]
5 -> 2 [label="{a, b}\n"]
......@@ -289,25 +289,25 @@ digraph G {
0 -> 1
1 [label=init]
1 -> 2 [label="a & b\\n"]
1 -> 3 [label="b & !a\\n"]
1 -> 3 [label="!a & b\\n"]
1 -> 4 [label="a & !b\\n"]
1 -> 5 [label="!b & !a\\n"]
2 [label="1"]
2 -> 3 [label="{a}\\n{Acc[b], Acc[a]}"]
2 -> 4 [label="{b}\\n{Acc[b], Acc[a]}"]
2 -> 5 [label="{a, b}\\n{Acc[b], Acc[a]}"]
2 -> 2 [label="{}\\n{Acc[b], Acc[a]}"]
3 [label="4"]
3 -> 2 [label="{a}\\n{Acc[b]}"]
3 -> 4 [label="{a, b}\\n{Acc[b]}"]
3 -> 5 [label="{b}\\n{Acc[b]}"]
1 -> 5 [label="!a & !b\\n"]
2 [label="3"]
2 -> 3 [label="{a}\\n{0,1}"]
2 -> 4 [label="{b}\\n{0,1}"]
2 -> 5 [label="{a, b}\\n{0,1}"]
2 -> 2 [label="{}\\n{0,1}"]
3 [label="2"]
3 -> 2 [label="{a}\\n{1}"]
3 -> 4 [label="{a, b}\\n{1}"]
3 -> 5 [label="{b}\\n{1}"]
3 -> 3 [label="{}\\n"]
4 [label="3"]
4 -> 2 [label="{b}\\n{Acc[a]}"]
4 -> 3 [label="{a, b}\\n{Acc[a]}"]
4 -> 5 [label="{a}\\n{Acc[a]}"]
4 [label="4"]
4 -> 2 [label="{b}\\n{0}"]
4 -> 3 [label="{a, b}\\n{0}"]
4 -> 5 [label="{a}\\n{0}"]
4 -> 4 [label="{}\\n"]
5 [label="2"]
5 [label="1"]
5 -> 2 [label="{a, b}\\n"]
5 -> 3 [label="{b}\\n"]
5 -> 4 [label="{a}\\n"]
......
......@@ -103,28 +103,27 @@ ltl2tgba -D -x sat-minimize "GF(a <-> XXb)"
#+RESULTS:
#+begin_example
digraph G {
0 [label="", style=invis, height=0]
0 -> 1
rankdir=LR
I [label="", style=invis, width=0]
I -> 0
0 [label="0"]
0 -> 1 [label="!b\n{0}"]
0 -> 1 [label="a & b"]
0 -> 2 [label="!a & b"]
1 [label="1"]
1 -> 1 [label="a & !b\n"]
1 -> 2 [label="!b & !a\n"]
1 -> 2 [label="b & !a\n{Acc[1]}"]
1 -> 3 [label="a & b\n{Acc[1]}"]
1 -> 1 [label="a & b\n{0}"]
1 -> 1 [label="a & !b"]
1 -> 2 [label="!a & !b"]
1 -> 3 [label="!a & b\n{0}"]
2 [label="2"]
2 -> 4 [label="!b & !a\n"]
2 -> 4 [label="b & !a\n{Acc[1]}"]
2 -> 3 [label="a & !b\n"]
2 -> 3 [label="a & b\n{Acc[1]}"]
3 [label="4"]
3 -> 1 [label="a & !b\n{Acc[1]}"]
3 -> 1 [label="a & b\n"]
3 -> 2 [label="!b & !a\n{Acc[1]}"]
3 -> 2 [label="b & !a\n"]
4 [label="3"]
4 -> 2 [label="!b & !a\n{Acc[1]}"]
4 -> 4 [label="b & !a\n"]
4 -> 3 [label="a & !b\n{Acc[1]}"]
4 -> 3 [label="a & b\n"]
2 -> 0 [label="a & !b"]
2 -> 1 [label="b\n{0}"]
2 -> 3 [label="!a & !b"]
3 [label="3"]
3 -> 0 [label="a & b"]
3 -> 0 [label="a & !b\n{0}"]
3 -> 3 [label="!a & b"]
3 -> 3 [label="!a & !b\n{0}"]
}
#+end_example
......@@ -135,28 +134,27 @@ ltl2tgba -D -x sat-minimize "GF(a <-> XXb)" | sed 's/\\/\\\\/'
#+RESULTS: gfaexxb3
#+begin_example
digraph G {
0 [label="", style=invis, height=0]
0 -> 1
rankdir=LR
I [label="", style=invis, width=0]
I -> 0
0 [label="0"]
0 -> 1 [label="!b\\n{0}"]
0 -> 1 [label="a & b"]
0 -> 2 [label="!a & b"]
1 [label="1"]
1 -> 1 [label="a & !b\\n"]
1 -> 1 [label="a & b\\n{Acc[1]}"]
1 -> 2 [label="!b & !a\\n"]
1 -> 2 [label="b & !a\\n{Acc[1]}"]
1 -> 1 [label="a & b\\n{0}"]
1 -> 1 [label="a & !b"]
1 -> 2 [label="!a & !b"]
1 -> 3 [label="!a & b\\n{0}"]
2 [label="2"]
2 -> 3 [label="!b & !a\\n"]
2 -> 3 [label="b & !a\\n{Acc[1]}"]
2 -> 4 [label="a & !b\\n"]
2 -> 4 [label="a & b\\n{Acc[1]}"]
2 -> 0 [label="a & !b"]
2 -> 1 [label="b\\n{0}"]
2 -> 3 [label="!a & !b"]
3 [label="3"]
3 -> 1 [label="a & !b\\n{Acc[1]}"]
3 -> 3 [label="b & !a\\n"]
3 -> 4 [label="!b & !a\\n{Acc[1]}"]
3 -> 4 [label="a & b\\n"]
4 [label="4"]
4 -> 1 [label="a & !b\\n{Acc[1]}"]
4 -> 1 [label="a & b\\n"]
4 -> 2 [label="!b & !a\\n{Acc[1]}"]
4 -> 2 [label="b & !a\\n"]
3 -> 0 [label="a & b"]
3 -> 0 [label="a & !b\\n{0}"]
3 -> 3 [label="!a & b"]
3 -> 3 [label="!a & !b\\n{0}"]
}
#+end_example
......@@ -177,34 +175,36 @@ ltl2tgba -BD -x sat-minimize "GF(a <-> XXb)"
#+RESULTS:
#+begin_example
digraph G {
0 [label="", style=invis, height=0]
0 -> 1
1 [label="1", peripheries=2]
1 -> 2 [label="!a\n{Acc[1]}"]
1 -> 3 [label="a & !b\n{Acc[1]}"]
1 -> 4 [label="a & b\n{Acc[1]}"]
2 [label="2", peripheries=2]
2 -> 1 [label="!b & !a\n{Acc[1]}"]
2 -> 4 [label="a\n{Acc[1]}"]
2 -> 5 [label="b & !a\n{Acc[1]}"]
3 [label="4"]
3 -> 1 [label="a & b\n"]
3 -> 2 [label="b & !a\n"]
3 -> 3 [label="a & !b\n"]
3 -> 6 [label="!b & !a\n"]
4 [label="3"]
4 -> 1 [label="!b\n"]
4 -> 3 [label="a & b\n"]
4 -> 6 [label="b & !a\n"]
5 [label="6"]
5 -> 1 [label="!b\n"]
5 -> 4 [label="a & b\n"]
5 -> 5 [label="b & !a\n"]
6 [label="5"]
6 -> 1 [label="a & b\n"]
6 -> 2 [label="b & !a\n"]
6 -> 4 [label="a & !b\n"]
6 -> 5 [label="!b & !a\n"]
rankdir=LR
I [label="", style=invis, width=0]
I -> 0
0 [label="0"]
0 -> 0 [label="!a & b"]
0 -> 1 [label="!a & !b"]
0 -> 2 [label="a & !b"]
0 -> 3 [label="a & b"]
1 [label="1"]
1 -> 0 [label="!a & b\n{0}"]
1 -> 2 [label="a & !b\n{0}"]
1 -> 3 [label="a & b\n{0}"]
1 -> 4 [label="!a & !b\n{0}"]
2 [label="2"]
2 -> 4 [label="!a\n{0}"]
2 -> 5 [label="a\n{0}"]
3 [label="3"]
3 -> 1 [label="!a & !b"]
3 -> 2 [label="a & !b"]
3 -> 4 [label="!a & b"]
3 -> 5 [label="a & b"]
4 [label="4"]
4 -> 0 [label="!a & !b"]
4 -> 1 [label="!a & b"]
4 -> 2 [label="a & b"]
4 -> 3 [label="a & !b"]
5 [label="5"]
5 -> 1 [label="b"]