Ease atomic proposition manipulation for twa.

* doc/org/tut22.org, src/ltlvisit/apcollect.cc,
src/ltlvisit/apcollect.hh, src/parseaut/parseaut.yy,
src/tests/ikwiad.cc, src/tests/tgbagraph.test,
src/tests/twagraph.cc, src/twa/twa.cc,
src/twa/twa.hh, src/twaalgos/ltl2tgba_fm.cc,
src/twaalgos/randomgraph.cc, src/twaalgos/relabel.cc,
src/twaalgos/stutter.cc, src/twaalgos/stutter.hh: here.
This commit is contained in:
Etienne Renault 2015-07-21 17:30:56 +02:00
parent 953181bbb7
commit 11b9ada2bb
14 changed files with 104 additions and 65 deletions

View file

@ -281,34 +281,18 @@ namespace spot
// Queue of state to be processed.
typedef std::deque<stutter_state> queue_t;
static bdd
get_all_ap(const const_twa_graph_ptr& a)
{
bdd res = bddtrue;
for (auto& i: a->edges())
res &= bdd_support(i.cond);
return res;
}
}
twa_graph_ptr
sl(const const_twa_graph_ptr& a, const ltl::formula* f)
sl(const twa_graph_ptr& a)
{
bdd aps = f
? atomic_prop_collect_as_bdd(f, a)
: get_all_ap(a);
return sl(a, aps);
return sl(a, a->ap_var());
}
twa_graph_ptr
sl2(const const_twa_graph_ptr& a, const ltl::formula* f)
sl2(const twa_graph_ptr& a)
{
bdd aps = f
? atomic_prop_collect_as_bdd(f, a)
: get_all_ap(a);
return sl2(a, aps);
return sl2(a, a->ap_var());
}
twa_graph_ptr
@ -379,7 +363,7 @@ namespace spot
sl2(twa_graph_ptr&& a, bdd atomic_propositions)
{
if (atomic_propositions == bddfalse)
atomic_propositions = get_all_ap(a);
atomic_propositions = a->ap_var();
unsigned num_states = a->num_states();
unsigned num_edges = a->num_edges();
std::vector<bdd> selfloops(num_states, bddfalse);
@ -666,7 +650,7 @@ namespace spot
}
is_stut = is_stutter_invariant(make_twa_graph(aut, twa::prop_set::all()),
std::move(neg), get_all_ap(aut));
std::move(neg), aut->ap_var());
aut->prop_stutter_invariant(is_stut);
aut->prop_stutter_sensitive(!is_stut);
return is_stut;