* src/tgba/tgbaexplicit.cc (tgba_explicit::get_acceptance_condition):

Do not treat true and false specially.  Otherwise it breaks
translation of F(false).
* src/tgbatest/explprod.test, src/tgbatest/tripprod.test: Do not
use true as acceptance condition.

* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor): Use Acc[b] as
acceptance condition for Fb, not Acc[Fb].

After this change, degeneralized automata are 40% smaller
This commit is contained in:
Alexandre Duret-Lutz 2004-01-29 17:05:19 +00:00
parent 440029c1b5
commit 1d72cdc86e
5 changed files with 19 additions and 22 deletions

View file

@ -312,8 +312,9 @@ namespace spot
case unop::F:
{
// r(Fy) = r(y) + a(y)r(XFy)
bdd y = recurse(node->child());
int a = dict_.register_a_variable(node);
const formula* child = node->child();
bdd y = recurse(child);
int a = dict_.register_a_variable(child);
int x = dict_.register_next_variable(node);
res_ = y | (bdd_ithvar(a) & bdd_ithvar(x));
return;