* src/tgbaalgos/tarjan_on_fly.hh,
src/tgbaalgos/tarjan_on_fly.cc, src/tgbaalgos/nesteddfs.hh, src/tgbaalgos/nesteddfs.cc, src/tgbaalgos/minimalce.hh, src/tgbaalgos/minimalce.cc, src/tgbaalgos/colordfs.hh, src/tgbaalgos/colordfs.cc: four new algorithms for emptyness check. src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/ce.cc: Adapt the counter exemple for the ce object in minimalce.hh. src/tgbatest/ltl2tgba.cc, src/tgbatest/emptchk.test, src/tgbaalgos/Makefile.am: Add files for emptyness-check. * src/tgbaalgos/reductgba_sim_del.cc: Restrict to degeneralize automata. * src/tgba/tgbareduc.hh: src/tgba/tgbareduc.cc: Merge transition for scc reduce.
This commit is contained in:
parent
3d2135c883
commit
2d1151e018
17 changed files with 2526 additions and 157 deletions
|
|
@ -123,6 +123,8 @@ namespace spot
|
|||
this->compute_scc();
|
||||
this->prune_acc();
|
||||
this->delete_scc();
|
||||
|
||||
this->merge_transitions();
|
||||
}
|
||||
|
||||
std::string
|
||||
|
|
@ -424,6 +426,12 @@ namespace spot
|
|||
|
||||
}
|
||||
|
||||
void
|
||||
tgba_reduc::merge_state_delayed(const spot::state*,
|
||||
const spot::state*)
|
||||
{
|
||||
}
|
||||
|
||||
/////////////////////////////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
|
|
@ -580,8 +588,6 @@ namespace spot
|
|||
void
|
||||
tgba_reduc::remove_acc(const spot::state* s)
|
||||
{
|
||||
//std::cout << "remove_acc" << std::endl;
|
||||
|
||||
tgba_explicit::state* s1;
|
||||
seen_map::iterator sm = si_.find(s);
|
||||
sm = si_.find(s);
|
||||
|
|
@ -624,7 +630,6 @@ namespace spot
|
|||
tgba_reduc::is_not_accepting(const spot::state* s,
|
||||
int n)
|
||||
{
|
||||
//std::cout << "is not accepting" << std::endl;
|
||||
bool b = false;
|
||||
|
||||
// First call of is_terminal //
|
||||
|
|
@ -726,8 +731,6 @@ namespace spot
|
|||
bool
|
||||
tgba_reduc::is_terminal(const spot::state* s, int n)
|
||||
{
|
||||
// FIXME
|
||||
|
||||
// a SCC is terminal if there are no transition
|
||||
// leaving the SCC AND she doesn't contain all
|
||||
// the acceptance condition.
|
||||
|
|
|
|||
|
|
@ -117,6 +117,12 @@ namespace spot
|
|||
void merge_state(const spot::state* s1,
|
||||
const spot::state* s2);
|
||||
|
||||
/// Redirect all transition leading to s1 to s2.
|
||||
/// Note that we can do the reverse because
|
||||
/// s1 and s2 belong to a co-simulate relation.
|
||||
void merge_state_delayed(const spot::state* s1,
|
||||
const spot::state* s2);
|
||||
|
||||
/// Remove all the scc which are terminal and doesn't
|
||||
/// contains all the acceptance conditions.
|
||||
void delete_scc();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue