spot  1.2.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | List of all members
spot::saba_complement_tgba Class Reference

Complement a TGBA and produce a SABA. More...

#include <saba/sabacomplementtgba.hh>

Inheritance diagram for spot::saba_complement_tgba:
Inheritance graph
Collaboration diagram for spot::saba_complement_tgba:
Collaboration graph

Public Member Functions

 saba_complement_tgba (const tgba *a)
 
virtual saba_stateget_init_state () const
 Get the initial state of the automaton. More...
 
virtual saba_succ_iteratorsucc_iter (const saba_state *local_state) const
 Get an iterator over the successors of local_state. More...
 
virtual bdd_dictget_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...
 

Detailed Description

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.

See Also
saba_complement_succ_iterator

Member Function Documentation

virtual bdd spot::saba_complement_tgba::all_acceptance_conditions ( ) const
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 std::string spot::saba_complement_tgba::format_state ( const saba_state state) const
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 bdd_dict* spot::saba_complement_tgba::get_dict ( ) const
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 saba_state* spot::saba_complement_tgba::get_init_state ( ) const
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.

virtual unsigned int spot::saba::number_of_acceptance_conditions ( ) const
virtualinherited

The number of acceptance conditions.

virtual saba_succ_iterator* spot::saba_complement_tgba::succ_iter ( const saba_state local_state) const
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.

Parameters
local_stateThe 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.


The documentation for this class was generated from the following file:

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Thu May 15 2014 11:04:11 for spot by doxygen 1.8.4