spot
1.99.3
|
A Transition-based ω-Automaton. More...
#include <twa/twa.hh>
Classes | |
class | succ_iterable |
Public Member Functions | |
virtual state * | get_init_state () const =0 |
Get the initial state of the automaton. More... | |
virtual twa_succ_iterator * | succ_iter (const state *local_state) const =0 |
Get an iterator over the successors of local_state. More... | |
Protected Member Functions | |
twa (const bdd_dict_ptr &d) | |
Protected Attributes | |
twa_succ_iterator * | iter_cache_ |
bdd_dict_ptr | dict_ |
A Transition-based ω-Automaton.
The acronym TωA stands for Transition-based ω-automaton. We may write it as TwA or twa, but never as TWA as the w is just a non-utf8 replacement for ω that should not be capitalized.
TωAs are transition-based automata, meanings that not-only do they have labels on arcs, they also have an acceptance condition defined in term of sets of transitions. The acceptance condition can be anything supported by the HOA format (http://adl.github.io/hoaf/). The only restriction w.r.t. the format is that this class does not support alternating automata
Previous version of Spot supported a type of automata called TGBA, which are TωA in which the acceptance condition is a set of sets of transitions that must be intersected infinitely often.
In this version, TGBAs are now represented by TωAs for which aut->acc().is_generalized_buchi())
returns true.
Browsing such automaton can be achieved using two functions: get_init_state
, and succ
. The former returns the initial state while the latter lists the successor states of any state.
Note that although this is a transition-based automata, we never represent transitions in the API! Transition data are obtained by querying the iterator over the successors of a state.
|
pure virtual |
Get the initial state of the automaton.
The state has been allocated with new
. It is the responsability of the caller to destroy
it when no longer needed.
Implemented in spot::twa_graph, spot::twa_product_init, spot::kripke_explicit, spot::twa_product, spot::taa_tgba, spot::tgba_safra_complement, spot::tgta_explicit, and spot::tgta_product.
|
pure virtual |
Get an iterator over the successors of local_state.
The iterator has been allocated with new
. It is the responsability of the caller to delete
it when no longer needed.
Implemented in spot::twa_graph, spot::kripke_explicit, spot::twa_product, spot::taa_tgba, spot::tgba_safra_complement, spot::tgta_explicit, and spot::tgta_product.