* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add the

symb_merge argument.
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Likewise.
* src/tgbatest/ltl2tgba.cc (main): Rename -fx as -x, and add -y
to unset symb_merge.
* wrap/python/cgi/ltl2tgba.in: Remove the exprop version
of the FM translator, make exprop and symb_merge options.
This commit is contained in:
Alexandre Duret-Lutz 2004-02-16 16:07:47 +00:00
parent 5cb4048120
commit 4e793ef418
6 changed files with 83 additions and 21 deletions

View file

@ -435,7 +435,8 @@ namespace spot
}
tgba_explicit*
ltl_to_tgba_fm(const formula* f, bdd_dict* dict, bool exprop)
ltl_to_tgba_fm(const formula* f, bdd_dict* dict,
bool exprop, bool symb_merge)
{
// Normalize the formula. We want all the negations on
// the atomic propositions. We also suppress logic
@ -530,7 +531,8 @@ namespace spot
// use it in lieu of the current one. (See the comments
// for canonical_succ.) We need to do this only for new
// destinations.
if (formulae_seen.find(dest) == formulae_seen.end())
if (symb_merge
&& formulae_seen.find(dest) == formulae_seen.end())
{
dest->accept(v);
bdd succbdd = v.result();

View file

@ -49,10 +49,16 @@ namespace spot
///
/// If \a exprop is set, the algorithm will consider all properties
/// combinations possible on each state, in an attempt to reduce
/// the non-determinism.
/// the non-determinism. The automaton will have the same size as
/// without this option, but because the transition will be more
/// deterministic product automaton will be smaller (or, at worse, equal).
///
/// If \a symb_merge is set to false, states with the same symbolic
/// representation (these are equivalent formulae) will not be
/// merged.
/// \endverbatim
tgba_explicit* ltl_to_tgba_fm(const ltl::formula* f, bdd_dict* dict,
bool exprop = false);
bool exprop = false, bool symb_merge = true);
}
#endif // SPOT_TGBA_LTL2TGBA_HH