Fix detection of the last iteration of minimize_dfa().
* src/tgbaalgos/minimize.cc (minimize_dfa): Fix detection of the last iteration. An extra iteration case could be missed in case where a split generates only singletons, and yet predecessor classes need to be refined.
This commit is contained in:
parent
984c715cc6
commit
0ca40d72d7
4 changed files with 16 additions and 2 deletions
1
AUTHORS
1
AUTHORS
|
|
@ -1,5 +1,6 @@
|
||||||
Have contributed to Spot:
|
Have contributed to Spot:
|
||||||
|
|
||||||
|
Ala-Eddine Ben-Salem
|
||||||
Alexandre Duret-Lutz
|
Alexandre Duret-Lutz
|
||||||
Damien Lefortier
|
Damien Lefortier
|
||||||
Denis Poitrenaud
|
Denis Poitrenaud
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,12 @@
|
||||||
|
2012-01-05 Ala-Eddine Ben-Salem <ala@lrde.epita.fr>
|
||||||
|
|
||||||
|
Fix detection of the last iteration of minimize_dfa().
|
||||||
|
|
||||||
|
* src/tgbaalgos/minimize.cc (minimize_dfa): Fix detection of the
|
||||||
|
last iteration. An extra iteration case could be missed in case
|
||||||
|
where a split generates only singletons, and yet predecessor
|
||||||
|
classes need to be refined.
|
||||||
|
|
||||||
2012-01-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
2012-01-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||||||
|
|
||||||
Fix computation of length of LTL formulas.
|
Fix computation of length of LTL formulas.
|
||||||
|
|
|
||||||
4
NEWS
4
NEWS
|
|
@ -3,6 +3,10 @@ New in spot 0.8.1a:
|
||||||
* Bug fixes:
|
* Bug fixes:
|
||||||
- spot::ltl::length() forgot to count the '&' and '|' operators
|
- spot::ltl::length() forgot to count the '&' and '|' operators
|
||||||
in an LTL formula.
|
in an LTL formula.
|
||||||
|
- minimize_dfa() could produce incorrect automata, but it's not
|
||||||
|
clear whether this could have had an inpact on WDBA minimization
|
||||||
|
(the worse case is that some TGBA would not have been minimized
|
||||||
|
when they could).
|
||||||
|
|
||||||
New in spot 0.8.1:
|
New in spot 0.8.1:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2010, 2011 Laboratoire de Recherche et Développement
|
// Copyright (C) 2010, 2011, 2012 Laboratoire de Recherche et Développement
|
||||||
// de l'Epita (LRDE).
|
// de l'Epita (LRDE).
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -425,6 +425,7 @@ namespace spot
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
did_split = true;
|
||||||
for (; bsi != bdd_map.end(); ++bsi)
|
for (; bsi != bdd_map.end(); ++bsi)
|
||||||
{
|
{
|
||||||
hash_set* set = bsi->second;
|
hash_set* set = bsi->second;
|
||||||
|
|
@ -457,7 +458,6 @@ namespace spot
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
did_split = true;
|
|
||||||
trace << "set " << format_hash_set(set, det_a)
|
trace << "set " << format_hash_set(set, det_a)
|
||||||
<< " should be processed further" << std::endl;
|
<< " should be processed further" << std::endl;
|
||||||
next_run.push_back(set);
|
next_run.push_back(set);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue