* src/tgba/succiterconcrete.hh (next_succ_set_): Rename as ...
(succ_set_left_): ... this. (current_base_, current_base_left_): New variables. * src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::first): Reset current_. (tgba_succ_iterator_concrete::next): Rewrite. (tgba_succ_iterator_concrete::current_state): Simplify. (tgba_succ_iterator_concrete::current_accepting_conditions): Remove atomic proposition with universal quantification. * src/tgba/ltl2tgba.cc (ltl_to_tgba): Normalize the formula. * src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::set_init_state): Complete the initial state. (tgba_bdd_concrete::succ_iter): Do not remove Now variable from the BDD passed to the iterator. * tgba/tgbabddcoredata.hh (notnow_set, var_set): New variables. * tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc: Adjust to update notnow_set and var_set.
This commit is contained in:
parent
35be07c472
commit
6d0546c317
8 changed files with 216 additions and 32 deletions
|
|
@ -4,7 +4,8 @@ namespace spot
|
|||
{
|
||||
tgba_bdd_core_data::tgba_bdd_core_data()
|
||||
: relation(bddtrue), accepting_conditions(bddfalse),
|
||||
now_set(bddtrue), negnow_set(bddtrue), notnext_set(bddtrue),
|
||||
now_set(bddtrue), negnow_set(bddtrue),
|
||||
notnow_set(bddtrue), notnext_set(bddtrue), var_set(bddtrue),
|
||||
notvar_set(bddtrue), notacc_set(bddtrue), negacc_set(bddtrue),
|
||||
next_to_now(bdd_newpair())
|
||||
{
|
||||
|
|
@ -13,7 +14,8 @@ namespace spot
|
|||
tgba_bdd_core_data::tgba_bdd_core_data(const tgba_bdd_core_data& copy)
|
||||
: relation(copy.relation), accepting_conditions(copy.accepting_conditions),
|
||||
now_set(copy.now_set), negnow_set(copy.negnow_set),
|
||||
notnext_set(copy.notnext_set), notvar_set(copy.notvar_set),
|
||||
notnow_set(copy.notnow_set), notnext_set(copy.notnext_set),
|
||||
var_set(copy.var_set), notvar_set(copy.notvar_set),
|
||||
notacc_set(copy.notacc_set), negacc_set(copy.negacc_set),
|
||||
next_to_now(bdd_copypair(copy.next_to_now))
|
||||
{
|
||||
|
|
@ -27,7 +29,9 @@ namespace spot
|
|||
| right.accepting_conditions),
|
||||
now_set(left.now_set & right.now_set),
|
||||
negnow_set(left.negnow_set & right.negnow_set),
|
||||
notnow_set(left.notnow_set & right.notnow_set),
|
||||
notnext_set(left.notnext_set & right.notnext_set),
|
||||
var_set(left.var_set & right.var_set),
|
||||
notvar_set(left.notvar_set & right.notvar_set),
|
||||
notacc_set(left.notacc_set & right.notacc_set),
|
||||
negacc_set(left.negacc_set & right.negacc_set),
|
||||
|
|
@ -57,6 +61,7 @@ namespace spot
|
|||
now_set &= now;
|
||||
negnow_set &= !now;
|
||||
notnext_set &= now;
|
||||
notnow_set &= next;
|
||||
bdd both = now & next;
|
||||
notvar_set &= both;
|
||||
notacc_set &= both;
|
||||
|
|
@ -65,13 +70,16 @@ namespace spot
|
|||
void
|
||||
tgba_bdd_core_data::declare_atomic_prop(bdd var)
|
||||
{
|
||||
notnow_set &= var;
|
||||
notnext_set &= var;
|
||||
notacc_set &= var;
|
||||
var_set &= var;
|
||||
}
|
||||
|
||||
void
|
||||
tgba_bdd_core_data::declare_accepting_condition(bdd acc)
|
||||
{
|
||||
notnow_set &= acc;
|
||||
notnext_set &= acc;
|
||||
notvar_set &= acc;
|
||||
negacc_set &= !acc;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue