translate: add ltl-split option
* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Build automata with generic acceptance by doing product of automata for smaller subformulas. * bin/spot-x.cc: Mention ltl-split. * NEWS: Mention the change, and show some results. * tests/core/genltl.test, tests/python/_product_susp.ipynb, tests/python/highlighting.ipynb: Adjust test cases. * doc/org/ltl2tgba.org: Update. * tests/core/gragsa.test: Add another formula to cover more code.
This commit is contained in:
parent
4f2e9512a2
commit
4815a361de
9 changed files with 736 additions and 499 deletions
36
NEWS
36
NEWS
|
|
@ -87,6 +87,35 @@ New in spot 2.5.3.dev (not yet released)
|
|||
a "suspendable" automaton B. They are also optimized for
|
||||
the case that A is weak.
|
||||
|
||||
- When 'generic' acceptance is enabled, the translation routine will
|
||||
split the input formula on Boolean operators into components that
|
||||
are syntactically 'obligation', 'suspendable', or 'something
|
||||
else'. Those will be translated separately and combined with
|
||||
product()/product_susp(). This is inspired by the ways things are
|
||||
done in ltl2dstar or delag, and can be disabled by passing option
|
||||
-xltl-split=0, as in ltl2tgba -G -D -xltl-split=0. Here are the
|
||||
sizes of deterministic automata produced with generic acceptance
|
||||
using two versions of ltl2tgba and delag for reference.
|
||||
|
||||
ltl2tgba -GD rabinizer 4
|
||||
2.5 2.6 delag
|
||||
------------- -------------
|
||||
FGa0&GFb0 5 1 1
|
||||
(FGa1&GFb1)|FGa0|GFb0 8 1 1
|
||||
(FGa2&GFb2)|((FGa1|GFb1)&FGa0&GFb0) 497 1 1
|
||||
FGa0|GFb0 2 1 1
|
||||
(FGa1|GFb1)&FGa0&GFb0 16 1 1
|
||||
(FGa2|GFb2)&((FGa1&GFb1)|FGa0|GFb0) 29 1 1
|
||||
GFa1 <-> GFz 4 1 1
|
||||
(GFa1 & GFa2) <-> GFz 8 1 1
|
||||
(GFa1 & GFa2 & GFa3) <-> GFz 21 1 1
|
||||
GFa1 -> GFz 5 1 1
|
||||
(GFa1 & GFa2) -> GFz 12 1 1
|
||||
(GFa1 & GFa2 & GFa3) -> GFz 41 1 1
|
||||
FG(a|b)|FG(!a|Xb) 4 2 2
|
||||
FG(a|b)|FG(!a|Xb)|FG(a|XXb) 21 5 4
|
||||
FG(a|b)|FG(!a|Xb)|FG(a|XXb)|FG(!a|XXXb) 170 15 8
|
||||
|
||||
- print_dot(), used to print automata in GraphViz's format,
|
||||
underwent several changes:
|
||||
|
||||
|
|
@ -219,6 +248,13 @@ New in spot 2.5.3.dev (not yet released)
|
|||
Make sure to quote %L to protect the potential commas:
|
||||
genltl --format='%F,"%L",%f' ...
|
||||
|
||||
- In Spot 2.5 and prior running "ltl2tgba --generic --det" on some
|
||||
formula would attempt to translate it as deterministic TGBA or
|
||||
determinize it into an automaton with parity acceptance. Version
|
||||
2.5 introduced --parity to force parity acceptance on the output.
|
||||
This version finally gives --generic some more natural semantics:
|
||||
any acceptance condition can be used.
|
||||
|
||||
|
||||
New in spot 2.5.3 (2018-04-20)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue