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