spot  1.1.3
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
spot::tgba_explicit< State > Class Template Reference

#include <tgba/tgbaexplicit.hh>

Inheritance diagram for spot::tgba_explicit< State >:
Inheritance graph
Collaboration diagram for spot::tgba_explicit< State >:
Collaboration graph

Public Types

typedef State::label_t label_t
 
typedef State::label_hash_t label_hash_t
 
typedef State::transitions_t transitions_t
 
typedef State::transition transition
 
typedef State state
 
typedef std::string(* to_string_func_t )(const label_t &t)
 

Public Member Functions

 tgba_explicit (bdd_dict *dict)
 
virtual ~tgba_explicit ()
 
State * add_default_init ()
 
size_t num_states () const
 
transitioncreate_transition (State *source, const State *dest)
 
transitioncreate_transition (const label_t &source, const label_t &dest)
 
transitionget_transition (const tgba_explicit_succ_iterator< State > *si)
 
transitionget_transition (const tgba_succ_iterator *si)
 
void add_condition (transition *t, const ltl::formula *f)
 
void add_conditions (transition *t, bdd f)
 This assumes that all variables in f are known from dict. More...
 
bool has_acceptance_condition (const ltl::formula *f) const
 
bool has_state (const label_t &name)
 
const State * get_state (const label_t &name)
 Return the state associated to a given label. More...
 
const label_tget_label (const State *s) const
 
const label_tget_label (const spot::state *s) const
 
void complement_all_acceptance_conditions ()
 
void merge_transitions ()
 
State * add_state (const label_t &name)
 
State * set_init_state (const label_t &state)
 
virtual State * get_init_state () const
 Get the initial state of the automaton. More...
 
virtual
tgba_explicit_succ_iterator
< State > * 
succ_iter (const spot::state *state, const spot::state *global_state=0, const tgba *global_automaton=0) const
 Get an iterator over the successors of local_state. More...
 
void set_to_string_func (to_string_func_t f)
 
to_string_func_t get_to_string_func () const
 
virtual std::string format_state (const spot::state *state) const
 Format the state as a string for printing. More...
 
void add_state_alias (const label_t &alias, const label_t &real)
 
void copy_acceptance_conditions_of (const tgba *a)
 Copy the acceptance conditions of a tgba. More...
 
void set_acceptance_conditions (bdd acc)
 Acceptance conditions handling. More...
 
void add_acceptance_condition (transition *t, const ltl::formula *f)
 
void add_acceptance_conditions (transition *t, bdd f)
 
virtual bdd all_acceptance_conditions () const
 Return the set of all acceptance conditions used by this automaton. More...
 
virtual bdd_dictget_dict () const
 Get the dictionary associated to the automaton. More...
 
virtual bdd neg_acceptance_conditions () const
 Return the conjuction of all negated acceptance variables. More...
 
void declare_acceptance_condition (const ltl::formula *f)
 
bdd get_acceptance_condition (const ltl::formula *f)
 
bdd support_conditions (const state *state) const
 Get a formula that must hold whatever successor is taken. More...
 
bdd support_variables (const state *state) const
 Get the conjunctions of variables tested by the outgoing transitions of state. More...
 
virtual std::string transition_annotation (const tgba_succ_iterator *t) const
 Return a possible annotation for the transition pointed to by the iterator. More...
 
virtual stateproject_state (const state *s, const tgba *t) const
 Project a state on an automaton. More...
 
virtual unsigned int number_of_acceptance_conditions () const
 The number of acceptance conditions. More...
 

Protected Types

typedef Sgi::hash_map< label_t,
State, label_hash_t
ls_map
 
typedef Sgi::hash_map< label_t,
State *, label_hash_t
alias_map
 
typedef Sgi::hash_map< const
State *, label_t, ptr_hash
< State > > 
sl_map
 

Protected Member Functions

virtual bdd compute_support_conditions (const spot::state *in) const
 Do the actual computation of tgba::support_conditions(). More...
 
virtual bdd compute_support_variables (const spot::state *in) const
 Do the actual computation of tgba::support_variables(). More...
 

Protected Attributes

ls_map ls_
 
alias_map alias_
 
sl_map sl_
 
State * init_
 
bdd_dictdict_
 
bdd all_acceptance_conditions_
 
bool all_acceptance_conditions_computed_
 
bdd neg_acceptance_conditions_
 
to_string_func_t to_string_func_
 
const statelast_support_conditions_input_
 
const statelast_support_variables_input_
 

Private Member Functions

 tgba_explicit (const tgba_explicit< State > &other)
 
tgba_explicitoperator= (const tgba_explicit &other)
 

Member Typedef Documentation

typedef Sgi::hash_map<label_t, State*, label_hash_t> spot::explicit_graph< State, tgba >::alias_map
protectedinherited
typedef State::label_hash_t spot::explicit_graph< State, tgba >::label_hash_t
inherited
typedef State::label_t spot::explicit_graph< State, tgba >::label_t
inherited
typedef Sgi::hash_map<label_t, State, label_hash_t> spot::explicit_graph< State, tgba >::ls_map
protectedinherited
typedef Sgi::hash_map<const State*, label_t, ptr_hash<State> > spot::explicit_graph< State, tgba >::sl_map
protectedinherited
typedef State spot::explicit_graph< State, tgba >::state
inherited
typedef std::string(* spot::explicit_graph< State, tgba >::to_string_func_t)(const label_t &t)
inherited
typedef State::transition spot::explicit_graph< State, tgba >::transition
inherited
typedef State::transitions_t spot::explicit_graph< State, tgba >::transitions_t
inherited

Constructor & Destructor Documentation

template<typename State>
spot::tgba_explicit< State >::tgba_explicit ( bdd_dict dict)
inline
template<typename State>
virtual spot::tgba_explicit< State >::~tgba_explicit ( )
inlinevirtual
template<typename State>
spot::tgba_explicit< State >::tgba_explicit ( const tgba_explicit< State > &  other)
private

Member Function Documentation

void spot::explicit_graph< State, tgba >::add_acceptance_condition ( transition t,
const ltl::formula f 
)
inlineinherited
void spot::explicit_graph< State, tgba >::add_acceptance_conditions ( transition t,
bdd  f 
)
inlineinherited
void spot::explicit_graph< State, tgba >::add_condition ( transition t,
const ltl::formula f 
)
inlineinherited
void spot::explicit_graph< State, tgba >::add_conditions ( transition t,
bdd  f 
)
inlineinherited

This assumes that all variables in f are known from dict.

References spot::explicit_graph< State, Type >::dict_, and spot::bdd_dict::register_propositions().

State* spot::explicit_graph< State, tgba >::add_default_init ( )
inlineinherited
State* spot::explicit_graph< State, tgba >::add_state ( const label_t &  name)
inlineinherited
void spot::explicit_graph< State, tgba >::add_state_alias ( const label_t &  alias,
const label_t &  real 
)
inlineinherited

Create an alias for a state. Any reference to alias_name will act as a reference to real_name.

References spot::explicit_graph< State, Type >::add_state(), and spot::explicit_graph< State, Type >::alias_.

virtual bdd spot::explicit_graph< State, tgba >::all_acceptance_conditions ( ) const
inlinevirtualinherited
void spot::explicit_graph< State, tgba >::complement_all_acceptance_conditions ( )
inlineinherited
virtual bdd spot::explicit_graph< State, tgba >::compute_support_conditions ( const spot::state state) const
inlineprotectedvirtualinherited

Implements spot::tgba.

References down_cast.

virtual bdd spot::explicit_graph< State, tgba >::compute_support_variables ( const spot::state state) const
inlineprotectedvirtualinherited

Implements spot::tgba.

References down_cast.

void spot::explicit_graph< State, tgba >::copy_acceptance_conditions_of ( const tgba a)
inlineinherited
transition* spot::explicit_graph< State, tgba >::create_transition ( State *  source,
const State *  dest 
)
inlineinherited
transition* spot::explicit_graph< State, tgba >::create_transition ( const label_t &  source,
const label_t &  dest 
)
inlineinherited
void spot::explicit_graph< State, tgba >::declare_acceptance_condition ( const ltl::formula f)
inlineinherited
virtual std::string spot::explicit_graph< State, tgba >::format_state ( const spot::state state) const
inlinevirtualinherited
bdd spot::explicit_graph< State, tgba >::get_acceptance_condition ( const ltl::formula f)
inlineinherited
virtual bdd_dict* spot::explicit_graph< State, tgba >::get_dict ( ) const
inlinevirtualinherited
virtual State* spot::explicit_graph< State, tgba >::get_init_state ( ) const
inlinevirtualinherited
const label_t& spot::explicit_graph< State, tgba >::get_label ( const State *  s) const
inlineinherited
const label_t& spot::explicit_graph< State, tgba >::get_label ( const spot::state s) const
inlineinherited
const State* spot::explicit_graph< State, tgba >::get_state ( const label_t &  name)
inlineinherited

Return the state associated to a given label.

This is similar to add_state(), except that it returns 0 if the state does not exist.

References spot::explicit_graph< State, Type >::ls_.

to_string_func_t spot::explicit_graph< State, tgba >::get_to_string_func ( ) const
inlineinherited
transition* spot::explicit_graph< State, tgba >::get_transition ( const tgba_explicit_succ_iterator< State > *  si)
inlineinherited
transition* spot::explicit_graph< State, tgba >::get_transition ( const tgba_succ_iterator si)
inlineinherited
bool spot::explicit_graph< State, tgba >::has_acceptance_condition ( const ltl::formula f) const
inlineinherited
bool spot::explicit_graph< State, tgba >::has_state ( const label_t &  name)
inlineinherited
void spot::explicit_graph< State, tgba >::merge_transitions ( )
inlineinherited
virtual bdd spot::explicit_graph< State, tgba >::neg_acceptance_conditions ( ) const
inlinevirtualinherited
size_t spot::explicit_graph< State, tgba >::num_states ( ) const
inlineinherited
virtual unsigned int spot::tgba::number_of_acceptance_conditions ( ) const
virtualinherited

The number of acceptance conditions.

template<typename State>
tgba_explicit& spot::tgba_explicit< State >::operator= ( const tgba_explicit< State > &  other)
private
virtual state* spot::tgba::project_state ( const state s,
const tgba t 
) const
virtualinherited

Project a state on an automaton.

This converts s, into that corresponding spot::state for t. This is useful when you have the state of a product, and want restrict this state to a specific automata occuring in the product.

It goes without saying that s and t should be compatible (i.e., s is a state of t).

Returns
0 if the projection fails (s is unrelated to t), or a new state* (the projected state) that must be destroyed by the caller.

Reimplemented in spot::tgba_union, spot::tgba_product, spot::tgba_tba_proxy, and spot::tgba_scc.

void spot::explicit_graph< State, tgba >::set_acceptance_conditions ( bdd  acc)
inlineinherited
State* spot::explicit_graph< State, tgba >::set_init_state ( const label_t &  state)
inlineinherited
void spot::explicit_graph< State, tgba >::set_to_string_func ( to_string_func_t  f)
inlineinherited
virtual tgba_explicit_succ_iterator<State>* spot::explicit_graph< State, tgba >::succ_iter ( const spot::state local_state,
const spot::state global_state = 0,
const tgba global_automaton = 0 
) const
inlinevirtualinherited

Implements spot::tgba.

References down_cast.

bdd spot::tgba::support_conditions ( const state state) const
inherited

Get a formula that must hold whatever successor is taken.

Returns
A formula which must be verified for all successors of state.

This can be as simple as bddtrue, or more completely the disjunction of the condition of all successors. This is used as an hint by succ_iter() to reduce the number of successor to compute in a product.

Sub classes should implement compute_support_conditions(), this function is just a wrapper that will cache the last return value for efficiency.

bdd spot::tgba::support_variables ( const state state) const
inherited

Get the conjunctions of variables tested by the outgoing transitions of state.

All variables tested by outgoing transitions must be returned. This is mandatory.

This is used as an hint by some succ_iter() to reduce the number of successor to compute in a product.

Sub classes should implement compute_support_variables(), this function is just a wrapper that will cache the last return value for efficiency.

virtual std::string spot::tgba::transition_annotation ( const tgba_succ_iterator t) const
virtualinherited

Return a possible annotation for the transition pointed to by the iterator.

You may decide to use annotations when building a tgba class that represents the state space of a model, for instance to indicate how the tgba transitions relate to the original model (e.g. the annotation could be the name of a PetriNet transition, or the line number of some textual formalism).

Implementing this method is optional; the default annotation is the empty string.

This method is used for instance in dotty_reachable(), and replay_tgba_run().

Parameters
ta non-done tgba_succ_iterator for this automaton

Reimplemented in spot::tgba_product, and spot::tgba_scc.

Member Data Documentation

alias_map spot::explicit_graph< State, tgba >::alias_
protectedinherited
bdd spot::explicit_graph< State, tgba >::all_acceptance_conditions_
mutableprotectedinherited
bool spot::explicit_graph< State, tgba >::all_acceptance_conditions_computed_
mutableprotectedinherited
bdd_dict* spot::explicit_graph< State, tgba >::dict_
protectedinherited
State* spot::explicit_graph< State, tgba >::init_
protectedinherited
const state* spot::tgba::last_support_conditions_input_
mutableprotectedinherited
const state* spot::tgba::last_support_variables_input_
mutableprotectedinherited
ls_map spot::explicit_graph< State, tgba >::ls_
protectedinherited
bdd spot::explicit_graph< State, tgba >::neg_acceptance_conditions_
protectedinherited
sl_map spot::explicit_graph< State, tgba >::sl_
protectedinherited
to_string_func_t spot::explicit_graph< State, tgba >::to_string_func_
protectedinherited

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 Tue Jul 9 2013 14:04:34 for spot by doxygen 1.8.4