Commit fa06cfa3 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz

alternation: implement remove_alternation() for weak alt automata

This mixes the subset construction (for 1-state rejecting SCCs) and
the breakpoint construction (for larger rejecting SCCs).  The
algorithm should probably be rewritten in a cleaner and more efficient
way, but that should do for a first version.  It should be easy to
extend it to support Büchi acceptance (since the breakpoint
construction works for this) when we need it.

* spot/twaalgos/alternation.hh,
spot/twaalgos/ (remove_alternation): New function.
* tests/python/alternation.ipynb: New file.
* tests/, doc/org/ Add it.
parent 582d455c
......@@ -75,3 +75,4 @@ real notebooks instead.
- [[][=atva16-fig2a.ipynb=]] first example from our [[][ATVA'16 tool paper]].
- [[][=atva16-fig2b.ipynb=]] second example from our [[][ATVA'16 tool paper]].
- [[][=alternation.ipynb=]] examples of alternating automata.
This diff is collapsed.
......@@ -90,7 +90,14 @@ namespace spot
/// @}
/// \brief Remove universal edges from an automaton.
/// This procedure is restricted to weak alternating automata as
/// input, and produces TGBAs as output. (Generalized Büchi
/// acceptance is only used in presence of size-1 rejecting-SCCs.)
/// \param named_states name each state for easier debugging
twa_graph_ptr remove_alternation(const const_twa_graph_ptr& aut,
bool named_states = false);
......@@ -302,6 +302,7 @@ if USE_PYTHON
TESTS_ipython = \
python/acc_cond.ipynb \
python/accparse.ipynb \
python/alternation.ipynb \
python/atva16-fig2a.ipynb \
python/atva16-fig2b.ipynb \
python/automata-io.ipynb \
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment