spot  1.1.4
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
spot::ta_explicit Class Reference

#include <ta/taexplicit.hh>

Inheritance diagram for spot::ta_explicit:
Inheritance graph
Collaboration diagram for spot::ta_explicit:
Collaboration graph

Public Types

typedef std::set< state
*, state_ptr_less_than
states_set_t
 

Public Member Functions

 ta_explicit (const tgba *tgba, bdd all_acceptance_conditions, state_ta_explicit *artificial_initial_state=0, bool own_tgba=false)
 
const tgbaget_tgba () const
 
state_ta_explicitadd_state (state_ta_explicit *s)
 
void add_to_initial_states_set (state *s, bdd condition=bddfalse)
 
void create_transition (state_ta_explicit *source, bdd condition, bdd acceptance_conditions, state_ta_explicit *dest, bool add_at_beginning=false)
 
void delete_stuttering_transitions ()
 
virtual ~ta_explicit ()
 
virtual const states_set_t get_initial_states_set () const
 Get the initial states set of the automaton. More...
 
virtual ta_succ_iteratorsucc_iter (const spot::state *s) const
 Get an iterator over the successors of state. More...
 
virtual ta_succ_iteratorsucc_iter (const spot::state *s, bdd condition) const
 Get an iterator over the successors of state filtred by the changeset on transitions. More...
 
virtual bdd_dictget_dict () const
 Get the dictionary associated to the automaton. More...
 
virtual std::string format_state (const spot::state *s) const
 Format the state as a string for printing. More...
 
virtual bool is_accepting_state (const spot::state *s) const
 Return true if s is a Buchi-accepting state, otherwise false. More...
 
virtual bool is_livelock_accepting_state (const spot::state *s) const
 Return true if s is a livelock-accepting state , otherwise false. More...
 
virtual bool is_initial_state (const spot::state *s) const
 Return true if s is an initial state, otherwise false. More...
 
virtual bdd get_state_condition (const spot::state *s) const
 Return a BDD condition that represents the valuation of atomic propositions in the state s. More...
 
virtual void free_state (const spot::state *s) const
 Release a state s. More...
 
spot::stateget_artificial_initial_state () const
 Get the artificial initial state set of the automaton. Return 0 if this artificial state is not implemented (in this case, use get_initial_states_set) The aim of adding this state is to have an unique initial state. This artificial initial state have one transition to each real initial state, and this transition is labeled by the corresponding initial condition. (For more details, see the paper cited above) More...
 
void set_artificial_initial_state (state_ta_explicit *s)
 
virtual void delete_stuttering_and_hole_successors (spot::state *s)
 
ta::states_set_t get_states_set ()
 
bdd all_acceptance_conditions () const
 Return the set of all acceptance conditions used by this automaton. More...
 

Private Member Functions

 ta_explicit (const ta_explicit &other)
 
ta_explicitoperator= (const ta_explicit &other)
 

Private Attributes

const tgbatgba_
 
bdd all_acceptance_conditions_
 
state_ta_explicitartificial_initial_state_
 
ta::states_set_t states_set_
 
ta::states_set_t initial_states_set_
 
bool own_tgba_
 

Detailed Description

Explicit representation of a spot::ta.

Member Typedef Documentation

typedef std::set<state*, state_ptr_less_than> spot::ta::states_set_t
inherited

Constructor & Destructor Documentation

spot::ta_explicit::ta_explicit ( const tgba tgba,
bdd  all_acceptance_conditions,
state_ta_explicit artificial_initial_state = 0,
bool  own_tgba = false 
)
virtual spot::ta_explicit::~ta_explicit ( )
virtual
spot::ta_explicit::ta_explicit ( const ta_explicit other)
private

Member Function Documentation

state_ta_explicit* spot::ta_explicit::add_state ( state_ta_explicit s)
void spot::ta_explicit::add_to_initial_states_set ( state s,
bdd  condition = bddfalse 
)
bdd spot::ta_explicit::all_acceptance_conditions ( ) const
inlinevirtual

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::ta.

References all_acceptance_conditions_.

void spot::ta_explicit::create_transition ( state_ta_explicit source,
bdd  condition,
bdd  acceptance_conditions,
state_ta_explicit dest,
bool  add_at_beginning = false 
)
virtual void spot::ta_explicit::delete_stuttering_and_hole_successors ( spot::state s)
virtual
void spot::ta_explicit::delete_stuttering_transitions ( )
virtual std::string spot::ta_explicit::format_state ( const spot::state s) const
virtual

Format the state as a string for printing.

This formating is the responsability of the automata that owns the state.

Implements spot::ta.

virtual void spot::ta_explicit::free_state ( const spot::state s) const
virtual

Release a state s.

Implements spot::ta.

spot::state* spot::ta_explicit::get_artificial_initial_state ( ) const
inlinevirtual

Get the artificial initial state set of the automaton. Return 0 if this artificial state is not implemented (in this case, use get_initial_states_set) The aim of adding this state is to have an unique initial state. This artificial initial state have one transition to each real initial state, and this transition is labeled by the corresponding initial condition. (For more details, see the paper cited above)

Reimplemented from spot::ta.

References artificial_initial_state_.

virtual bdd_dict* spot::ta_explicit::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::ta.

virtual const states_set_t spot::ta_explicit::get_initial_states_set ( ) const
virtual

Get the initial states set of the automaton.

Implements spot::ta.

virtual bdd spot::ta_explicit::get_state_condition ( const spot::state s) const
virtual

Return a BDD condition that represents the valuation of atomic propositions in the state s.

Implements spot::ta.

ta::states_set_t spot::ta_explicit::get_states_set ( )
inline

References states_set_.

const tgba* spot::ta_explicit::get_tgba ( ) const
virtual bool spot::ta_explicit::is_accepting_state ( const spot::state s) const
virtual

Return true if s is a Buchi-accepting state, otherwise false.

Implements spot::ta.

virtual bool spot::ta_explicit::is_initial_state ( const spot::state s) const
virtual

Return true if s is an initial state, otherwise false.

Implements spot::ta.

virtual bool spot::ta_explicit::is_livelock_accepting_state ( const spot::state s) const
virtual

Return true if s is a livelock-accepting state , otherwise false.

Implements spot::ta.

ta_explicit& spot::ta_explicit::operator= ( const ta_explicit other)
private
void spot::ta_explicit::set_artificial_initial_state ( state_ta_explicit s)
inline
virtual ta_succ_iterator* spot::ta_explicit::succ_iter ( const spot::state state) const
virtual

Get an iterator over the successors of state.

The iterator has been allocated with new. It is the responsability of the caller to delete it when no longer needed.

Implements spot::ta.

virtual ta_succ_iterator* spot::ta_explicit::succ_iter ( const spot::state state,
bdd  changeset 
) const
virtual

Get an iterator over the successors of state filtred by the changeset on transitions.

The iterator has been allocated with new. It is the responsability of the caller to delete it when no longer needed.

Implements spot::ta.

Member Data Documentation

bdd spot::ta_explicit::all_acceptance_conditions_
private
state_ta_explicit* spot::ta_explicit::artificial_initial_state_
private
ta::states_set_t spot::ta_explicit::initial_states_set_
private
bool spot::ta_explicit::own_tgba_
private
ta::states_set_t spot::ta_explicit::states_set_
private

Referenced by get_states_set().

const tgba* spot::ta_explicit::tgba_
private

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 Mon Jul 29 2013 00:27:25 for spot by doxygen 1.8.4