acd: add support for state-based output

* spot/twaalgos/zlktree.hh, spot/twaalgos/zlktree.cc (acd::node_level,
acd::state_step, acd_transform_sbacc): New public functions.
* tests/python/zlktree.ipynb, tests/python/zlktree.py: More tests.
* NEWS: Typo.
This commit is contained in:
Alexandre Duret-Lutz 2021-09-24 13:37:16 +02:00
parent 043a1dc394
commit 70ede35702
5 changed files with 2621 additions and 129 deletions

20
NEWS
View file

@ -15,19 +15,19 @@ New in spot 2.9.8.dev (not yet released)
- ltlsynt --aiger option now takes an optional argument indicating
how the bdd and states are to be encoded in the aiger output.
The option has to be given in the form
ite|isop|both[+ud][+dc][+sub0|sub1|sub2] where the first
The option has to be given in the form
ite|isop|both[+ud][+dc][+sub0|sub1|sub2] where the first
only obligatory argument decides whether "if-then-else" ("ite")
or irreducible-sum-of-products ("isop") is to be used.
"both" executes both strategies and retains the smaller circuits.
The additional options are for fine-tuning. "ud" also encodes the
The additional options are for fine-tuning. "ud" also encodes the
dual of the conditions and retains the smaller circuits.
"dc" computes if for some inputs we do not care whether the
output is high or low and try to use this information to compute
a smaller circuit. "subX" indicates different strategies to find
common subexpressions, with "sub0" indicating no extra computations.
- ltlsynt --verify checks the computed strategy or aiger circuit
- ltlsynt --verify checks the computed strategy or aiger circuit
against the specification.
- ltlsynt -x "specification-decomposition" determines whether or not
@ -36,8 +36,8 @@ New in spot 2.9.8.dev (not yet released)
into a circuit.
- ltlsynt -x "minimization-level=[0-5]" determines how to minimize
the strategy (a monitor). 0, no minimization; 1, regular DFA
minimization; 2, signature based minimization with
the strategy (a monitor). 0, no minimization; 1, regular DFA
minimization; 2, signature based minimization with
output assignement; 3, SAT based minimization; 4, 1 then 3;
5, 2 then 3.
@ -58,11 +58,11 @@ New in spot 2.9.8.dev (not yet released)
Library:
- Spot now provides convenient function to create and solve game.
The functions are located in twaalgos/game.hh and
twaalgos/synthesis.hh. Moreover a new structure holding
The functions are located in twaalgos/game.hh and
twaalgos/synthesis.hh. Moreover a new structure holding
all the necessary options called game_info is now available.
- A new class called aig is introduced to represent
- A new class called aig is introduced to represent
and-inverter-graphs, which is useful for synthesis.
- Historically, Spot labels automata by Boolean formulas over
@ -275,7 +275,7 @@ New in spot 2.9.8.dev (not yet released)
Additionally, this function now returns the number of states that
have been merged (and therefore removed from the automaton).
- spot::zielonka_tree and spot::acd are new class that implement the
- spot::zielonka_tree and spot::acd are new classes that implement the
Zielonka Tree and Alternatic Cycle Decomposition, based on a paper
by Casares et al. (ICALP'21). Those structures can be used to
paritize any automaton, and more. The graphical rendering of ACD