spot
1.2.4
|
Complement a TGBA and produce a SABA. More...
#include <saba/sabacomplementtgba.hh>
Public Member Functions | |
saba_complement_tgba (const tgba *a) | |
virtual saba_state * | get_init_state () const |
Get the initial state of the automaton. More... | |
virtual saba_succ_iterator * | succ_iter (const saba_state *local_state) const |
Get an iterator over the successors of local_state. More... | |
virtual bdd_dict * | get_dict () const |
Get the dictionary associated to the automaton. More... | |
virtual std::string | format_state (const saba_state *state) const |
Format the state as a string for printing. More... | |
virtual bdd | all_acceptance_conditions () const |
Return the set of all acceptance conditions used by this automaton. More... | |
virtual unsigned int | number_of_acceptance_conditions () const |
The number of acceptance conditions. More... | |
Complement a TGBA and produce a SABA.
The original TGBA is transformed into a States-based Büchi Automaton.
Several techniques are supposed to by applied on the resulting automaton before its transformation into a TGBA. Those techniques are expected to reduce the size of the automaton.
This algorithm comes from:
@Article{ gurumurthy.03.lncs, title = {On complementing nondeterministic {B\"uchi} automata}, author = {Gurumurthy, S. and Kupferman, O. and Somenzi, F. and Vardi, M.Y.}, journal = {Lecture Notes in Computer Science}, pages = {96--110}, year = {2003}, publisher = {Springer-Verlag} }
The construction is done on-the-fly, by the saba_complement_succ_iterator
class.
|
virtual |
Return the set of all acceptance conditions used by this automaton.
The goal of the emptiness check is to ensure that a strongly connected component walks through each of these acceptiong conditions. I.e., the union of the acceptiong conditions of all transition in the SCC should be equal to the result of this function.
Implements spot::saba.
|
virtual |
Format the state as a string for printing.
This formating is the responsability of the automata that owns the state.
Implements spot::saba.
|
virtual |
Get the dictionary associated to the automaton.
State are represented as BDDs. The dictionary allows to map BDD variables back to formulae, and vice versa. This is useful when dealing with several automata (which may use the same BDD variable for different formula), or simply when printing.
Implements spot::saba.
|
virtual |
Get the initial state of the automaton.
The state has been allocated with new
. It is the responsability of the caller to delete
it when no longer needed.
Implements spot::saba.
|
virtualinherited |
The number of acceptance conditions.
|
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.
local_state | The state whose successors are to be explored. This pointer is not adopted in any way by succ_iter , and it is still the caller's responsability to delete it when appropriate (this can be done during the lifetime of the iterator). |
Implements spot::saba.