Improving split and reorganizing

* spot/twaalgos/synthesis.cc, spot/twaalgos/synthesis.hh: New files
regrouping the functionnalities split and apply_strategy for synthesis
* python/spot/impl.i, spot/twaalgos/Makefile.am: Add them.
* spot/twaalgos/split.cc, spot/twaalgos/split.hh: No longer contains
the splits necessary for for synthesis, moved to
spot/twaalgos/synthesis.cc, spot/twaalgos/split.hh Split is now faster
and reduces the number of intermediate states, reducing the overall
size of the arena
* spot/misc/game.cc, spot/misc/game.hh: Renaming propagate_players to
alternate_players.
* tests/core/ltlsynt.test, tests/python/split.py: Update tests.
* bin/ltlsynt.cc: Adjust to new split. Swap order of split and
to_parity for lar.
This commit is contained in:
philipp 2020-09-24 16:25:53 +02:00 committed by Alexandre Duret-Lutz
parent ca043bd62d
commit 29055c8109
11 changed files with 641 additions and 308 deletions

View file

@ -806,13 +806,13 @@ namespace spot
}
}
void propagate_players(spot::twa_graph_ptr& arena,
void alternate_players(spot::twa_graph_ptr& arena,
bool first_player, bool complete0)
{
auto um = arena->acc().unsat_mark();
if (!um.first)
throw std::runtime_error
("propagate_players(): game winning condition is a tautology");
("alternate_players(): game winning condition is a tautology");
unsigned sink_env = 0;
unsigned sink_con = 0;
@ -843,7 +843,7 @@ namespace spot
{
delete owner;
throw
std::runtime_error("propagate_players(): odd cycle detected");
std::runtime_error("alternate_players(): odd cycle detected");
}
}
if (complete0 && !(*owner)[src] && missing != bddfalse)

View file

@ -42,7 +42,7 @@ namespace spot
/// If \a complete0 is set, ensure that states of player 0 are
/// complete.
SPOT_API
void propagate_players(spot::twa_graph_ptr& arena,
void alternate_players(spot::twa_graph_ptr& arena,
bool first_player = false,
bool complete0 = true);