This should help getting accurate statistics (on both the

formula automaton and the synchronized product) from LBTT.
Idea from Jean-Michel Couvreur.

* src/tgbaalgos/lbtt.cc (nonacceptant_lbtt_bfs): New class.
(nonacceptant_lbtt_reachable): New function.
* src/tgbaalgos/lbtt.hh (nonacceptant_lbtt_reachable): New
function.
* src/tgbatest/ltl2tgba.cc (main): Call nonacceptant_lbtt_reachable
if the -T option is used.
* src/tgbatest/spotlbtt.test: Setup the -T variants, disabled by
default.
This commit is contained in:
Alexandre Duret-Lutz 2004-02-07 23:49:28 +00:00
parent 0816a4505f
commit 7069d5406b
5 changed files with 121 additions and 2 deletions

View file

@ -50,6 +50,23 @@ namespace spot
/// \param g The automata to print.
/// \param os Where to print.
std::ostream& lbtt_reachable(std::ostream& os, const tgba* g);
/// \brief Print an LBTT automaton for statistics.
///
/// Output \a g in LBTT's format but ignoring the acceptance
/// conditions, of all its transitions. This produces an automaton
/// that has the same size as \a g, and whose synchronized product
/// with another automaton also has the same size. This will also
/// declare as much acceptance conditions has there is in \a g (they
/// will just be never used).
///
/// The produced automaton will not recognize any word (unless \a g
/// has no acceptance condition, in which case this function is a
/// no-op).
///
/// The produced automaton is useful to obtain accurate statistics
/// from LBTT, without any size blow up of the automata.
std::ostream& nonacceptant_lbtt_reachable(std::ostream& os, const tgba* g);
}
#endif // SPOT_TGBAALGOS_LBTT_HH