Initial code for TGBA (Transition Generalized Bchi Automata).

Contains tgba_bdd, a BDD-encoded TGBA, and ltl_to_tgba,
a LTL-to-TGBA translator using Couvreur's algorithm.

* src/Makefile.am (SUBDIRS): Add tgba.
(libspot_la_LIBADD): Add tgba/libtgba.la.
* src/tgba/Makefile.am, src/tgba/bddfactory.cc,
src/tgba/bddfactory.hh, src/tgba/dictunion.cc,
src/tgba/dictunion.hh, src/tgba/ltl2tgba.cc, src/tgba/ltl2tgba.hh,
src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh,
src/tgba/succiter.hh, src/tgba/succiterconcrete.cc,
src/tgba/succiterconcrete.hh, src/tgba/succlist.hh,
src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc,
src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc,
src/tgba/tgbabddconcretefactory.hh,
src/tgba/tgbabddconcreteproduct.cc,
src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
src/tgba/tgbabddcoredata.hh, src/tgba/tgbabdddict.cc,
src/tgba/tgbabdddict.hh, src/tgba/tgbabddfactory.hh,
src/tgba/tgbabddtranslatefactory.cc,
src/tgba/tgbabddtranslatefactory.hh: New files.
This commit is contained in:
Alexandre Duret-Lutz 2003-05-26 11:17:40 +00:00
parent 5100c197a2
commit c03934140f
32 changed files with 1263 additions and 2 deletions

View file

@ -0,0 +1,58 @@
#include "tgbabddconcrete.hh"
namespace spot
{
tgba_bdd_concrete::tgba_bdd_concrete(const tgba_bdd_factory& fact)
: data_(fact.get_core_data()), dict_(fact.get_dict())
{
}
tgba_bdd_concrete::tgba_bdd_concrete(const tgba_bdd_factory& fact, bdd init)
: data_(fact.get_core_data()), dict_(fact.get_dict()), init_(init)
{
}
tgba_bdd_concrete::~tgba_bdd_concrete()
{
}
void
tgba_bdd_concrete::set_init_state(bdd s)
{
init_ = s;
}
state_bdd
tgba_bdd_concrete::get_init_state() const
{
return init_;
}
tgba_succ_iterator_concrete*
tgba_bdd_concrete::succ_iter(bdd state) const
{
bdd succ_set = bdd_replace(bdd_exist(data_.relation & state,
data_.now_set),
data_.next_to_now);
return new tgba_succ_iterator_concrete(data_, succ_set);
}
tgba_succ_iterator_concrete*
tgba_bdd_concrete::init_iter() const
{
return new tgba_succ_iterator_concrete(data_, init_);
}
const tgba_bdd_dict&
tgba_bdd_concrete::get_dict() const
{
return dict_;
}
const tgba_bdd_core_data&
tgba_bdd_concrete::get_core_data() const
{
return data_;
}
}