spot
1.99.7
|
A Transition-based Generalized Testing Automaton (TGTA). More...
#include <spot/ta/tgta.hh>
Public Member Functions | |
virtual twa_succ_iterator * | succ_iter_by_changeset (const spot::state *s, bdd change_set) const =0 |
Get an iterator over the successors of state filtred by the value of the changeset on transitions between the state and his successors. More... | |
virtual const 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 | |
tgta (const bdd_dict_ptr &d) | |
Protected Attributes | |
twa_succ_iterator * | iter_cache_ |
bdd_dict_ptr | dict_ |
A Transition-based Generalized Testing Automaton (TGTA).
Transition-based Generalized Testing Automaton (TGTA) is a new kind of automaton that combines features from both TA and TGBA. From TA, we take the idea of labeling transitions with changesets, however we remove the use of livelock-acceptance (because it may require a two-pass emptiness check), and the implicit stuttering. From TGBA, we inherit the use of transition-based generalized acceptance conditions. The resulting Chimera, which we call "Transition-based Generalized Testing Automaton" (TGTA), accepts only stuttering-insensitive languages like TA, and inherits advantages from both TA and TGBA: it has a simple one-pass emptiness-check procedure (the same as algorithm the one for TGBA), and can benefit from reductions based on the stuttering of the properties pretty much like a TA. Livelock acceptance states, which are no longer supported are emulated using states with a Büchi accepting self-loop labeled by empty changeset.
Browsing such automaton can be achieved using two functions: get_initial_state
and succ_iter
. The former returns the initial state(s) while the latter lists the successor states of any state. A second implementation of succ_iter
returns only the successors reached through a changeset passed as a parameter.
Note that although this is a transition-based automata, we never represent transitions! Transition informations are obtained by querying the iterator over the successors of a state.
|
pure virtualinherited |
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::kripke_graph, spot::twa_product_init, spot::twa_product, spot::taa_tgba, spot::tgba_safra_complement, spot::tgta_explicit, and spot::tgta_product.
|
pure virtualinherited |
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_graph, 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 state filtred by the value of the changeset on transitions between the state and his successors.
The iterator has been allocated with new
. It is the responsability of the caller to delete
it when no longer needed.
Implemented in spot::tgta_explicit.