stutter: improve closure

if a transition with the same label already exist, reuse it

* src/tgbaalgos/stutter.cc: Here.
* src/tgbatest/stutter.test: Add a test case.
This commit is contained in:
Alexandre Duret-Lutz 2015-03-31 19:18:41 +02:00
parent 2f42c1c9bf
commit a18327d488
2 changed files with 44 additions and 5 deletions

View file

@ -487,13 +487,27 @@ namespace spot
{
if (!bdd_implies(cond, ts.cond))
{
ts.cond = ts.cond | cond;
ts.cond |= cond;
if (std::find(todo.begin(), todo.end(), t)
== todo.end())
todo.push_back(t);
}
need_new_trans = false;
break;
}
else if (cond == ts.cond)
{
acc |= ts.acc;
if (ts.acc != acc)
{
ts.acc = acc;
if (std::find(todo.begin(), todo.end(), t)
== todo.end())
todo.push_back(t);
}
need_new_trans = false;
break;
}
}
if (need_new_trans)
{