* src/tgba/tgbatba.hh (tgba_sba_proxy): New class, with the

functionality of the old tgba_tba_proxy.
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator,
tgba_tba_proxy): Rewrite to produce TBA with at most N copies of
each state, skipping the `bddtrue' stage now used only in
tgba_sba_proxy.  Doing so removes approximately 6% of states in
the degeneralized tests of spotlbtt.test.
(tgba_sba_proxy): Implement it.
* src/tgbaalgos/neverclaim.hh, src/tgbaalgos/neverclaim.cc: Adjust
to take a tgba_sba_proxy.
* src/tgbatest/ltl2tgba.cc: Add option -DS and adjust call to
never_claim_reachable().
This commit is contained in:
Alexandre Duret-Lutz 2004-11-16 18:38:19 +00:00
parent ee5462105b
commit cac85dbcca
6 changed files with 173 additions and 82 deletions

View file

@ -37,7 +37,7 @@ namespace spot
class never_claim_bfs : public tgba_reachable_iterator_breadth_first
{
public:
never_claim_bfs(const tgba_tba_proxy* a, std::ostream& os,
never_claim_bfs(const tgba_sba_proxy* a, std::ostream& os,
const ltl::formula* f)
: tgba_reachable_iterator_breadth_first(a),
os_(os), f_(f), accept_all_(-1), fi_needed_(false)
@ -76,7 +76,7 @@ namespace spot
state_is_accepting(const state *s)
{
return
dynamic_cast<const tgba_tba_proxy*>(automata_)->state_is_accepting(s);
dynamic_cast<const tgba_sba_proxy*>(automata_)->state_is_accepting(s);
}
std::string
@ -184,7 +184,7 @@ namespace spot
} // anonymous
std::ostream&
never_claim_reachable(std::ostream& os, const tgba_tba_proxy* g,
never_claim_reachable(std::ostream& os, const tgba_sba_proxy* g,
const ltl::formula* f)
{
never_claim_bfs n(g, os, f);

View file

@ -35,7 +35,7 @@ namespace spot
/// \param f The (optional) formula associated to the automaton. If given
/// it will be output as a comment.
std::ostream& never_claim_reachable(std::ostream& os,
const tgba_tba_proxy* g,
const tgba_sba_proxy* g,
const ltl::formula* f = 0);
}