introduce spot::simplify_acceptance()

Simplify some automata where some marks are identical,
or complementary to another. Fixes #216.

* NEWS: mention the new function.
* spot/twaalgos/cleanacc.cc, spot/twaalgos/cleanacc.hh: Implement
  the function.
* tests/Makefile.am, tests/python/merge.py: Test this implementation.
This commit is contained in:
Thomas Medioni 2017-04-27 15:10:53 +02:00
parent 22620e185c
commit a12d676bdc
5 changed files with 884 additions and 0 deletions

View file

@ -34,4 +34,17 @@ namespace spot
/// \brief Remove useless acceptance sets
SPOT_API twa_graph_ptr
cleanup_acceptance(const_twa_graph_ptr aut);
/// \brief Simplify an acceptance condition
///
/// Remove useless acceptance sets.
/// Merge identical sets.
/// If some sets are complement to each other, might result in the
/// simplification of some clause in the acceptance condition.
SPOT_API twa_graph_ptr
simplify_acceptance_here(twa_graph_ptr aut);
/// \brief Simplify an acceptance condition
SPOT_API twa_graph_ptr
simplify_acceptance(const_twa_graph_ptr aut);
}