postprocess: call restrict_dead_end_edges_here()

Related to issue #587.

* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Add
support for option "rde".
* bin/spot-x.cc, NEWS: Mention it.
* tests/core/deadends.test, tests/core/ltl2tgba2.test,
tests/python/atva16-fig2a.ipynb, tests/python/deadends.py: Adjust test
cases to reflect the improvement.
* tests/core/ltlsynt.test: Also adjust this test case, which is the
only one worsened.  Some extra gates are generated when translating
GFa<->GFb with --algo=ds or --algo=sd.  Issue #588 would be one way to
fix that.
This commit is contained in:
Alexandre Duret-Lutz 2024-07-17 16:59:07 +02:00
parent 31511e042a
commit 6a7ef4db3f
9 changed files with 75 additions and 41 deletions

View file

@ -206,6 +206,12 @@ it can cause the created temporary automata to have incompatible \
combinations of atomic propositions that will be eventually be removed. \
This relabeling is attempted after relabel-bool. By default, N=8. Setting \
this value to 0 will disable the rewriting.") },
{ DOC("rde", "Disable (0), or enable (1) the 'restrict-dead-end-edges' \
optimization. A dead-end-edge is one that move to a state that has only \
itself as successors. The label of such edges can be simplified in some \
situtation, reducing non-determinism slightly. By default (-1), this is \
enabled only in --high mode, or if both --medium and --deterministic are \
used.") },
{ DOC("wdba-minimize", "Set to 0 to disable WDBA-minimization, to 1 to \
always try it, or 2 to attempt it only on syntactic obligations or on automata \
that are weak and deterministic. The default is 1 in --high mode, else 2 in \