spot
0.9.1
|
#include <tgba/tgbaexplicit.hh>
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 () |
transition * | create_transition (State *source, const State *dest) |
transition * | create_transition (const label_t &source, const label_t &dest) |
transition * | get_transition (const tgba_explicit_succ_iterator< State > *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. | |
bool | has_acceptance_condition (const ltl::formula *f) const |
bool | has_state (const label_t &name) |
const label_t & | get_label (const State *s) const |
const label_t & | get_label (const spot::state *s) const |
transition * | create_trainsition (const label_t &source, const label_t &dest) |
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. | |
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. | |
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. | |
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. | |
void | set_acceptance_conditions (bdd acc) |
Acceptance conditions handlingx. | |
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. | |
virtual bdd_dict * | get_dict () const |
Get the dictionary associated to the automaton. | |
virtual bdd | neg_acceptance_conditions () const |
Return the conjuction of all negated acceptance variables. | |
void | declare_acceptance_condition (const ltl::formula *f) |
bdd | support_conditions (const state *state) const |
Get a formula that must hold whatever successor is taken. | |
bdd | support_variables (const state *state) const |
Get the conjunctions of variables tested by the outgoing transitions of state. | |
virtual std::string | transition_annotation (const tgba_succ_iterator *t) const |
Return a possible annotation for the transition pointed to by the iterator. | |
virtual state * | project_state (const state *s, const tgba *t) const |
Project a state on an automaton. | |
virtual unsigned int | number_of_acceptance_conditions () const |
The number of acceptance conditions. | |
Protected Types | |
typedef Sgi::hash_map< label_t, State, label_hash_t > | ls_map |
typedef Sgi::hash_map< const State *, label_t, ptr_hash < State > > | sl_map |
Protected Member Functions | |
bdd | get_acceptance_condition (const ltl::formula *f) |
virtual bdd | compute_support_conditions (const spot::state *in) const |
Do the actual computation of tgba::support_conditions(). | |
virtual bdd | compute_support_variables (const spot::state *in) const |
Do the actual computation of tgba::support_variables(). | |
Protected Attributes | |
ls_map | ls_ |
sl_map | sl_ |
State * | init_ |
bdd_dict * | dict_ |
bdd | all_acceptance_conditions_ |
bool | all_acceptance_conditions_computed_ |
bdd | neg_acceptance_conditions_ |
to_string_func_t | to_string_func_ |
const state * | last_support_conditions_input_ |
const state * | last_support_variables_input_ |
Private Member Functions | |
tgba_explicit (const tgba_explicit< State > &other) | |
tgba_explicit & | operator= (const tgba_explicit &other) |
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 [protected, inherited] |
typedef Sgi::hash_map<const State*, label_t, ptr_hash<State> > spot::explicit_graph< State, tgba >::sl_map [protected, inherited] |
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] |
spot::tgba_explicit< State >::tgba_explicit | ( | bdd_dict * | dict | ) | [inline] |
virtual spot::tgba_explicit< State >::~tgba_explicit | ( | ) | [inline, virtual] |
spot::tgba_explicit< State >::tgba_explicit | ( | const tgba_explicit< State > & | other | ) | [private] |
void spot::explicit_graph< State, tgba >::add_acceptance_condition | ( | transition * | t, |
const ltl::formula * | f | ||
) | [inline, inherited] |
void spot::explicit_graph< State, tgba >::add_acceptance_conditions | ( | transition * | t, |
bdd | f | ||
) | [inline, inherited] |
This assumes that all acceptance conditions in f are known from dict.
References spot::explicit_graph< State, Type >::dict_, spot::explicit_graph< State, Type >::neg_acceptance_conditions_, and spot::bdd_dict::register_acceptance_variables().
void spot::explicit_graph< State, tgba >::add_condition | ( | transition * | t, |
const ltl::formula * | f | ||
) | [inline, inherited] |
void spot::explicit_graph< State, tgba >::add_conditions | ( | transition * | t, |
bdd | f | ||
) | [inline, inherited] |
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 | ( | ) | [inline, inherited] |
References spot::explicit_graph< State, Type >::add_state().
State* spot::explicit_graph< State, tgba >::add_state | ( | const label_t & | name | ) | [inline, inherited] |
Return the state_explicit for name, creating the state if it does not exist.
References spot::explicit_graph< State, Type >::init_, spot::explicit_graph< State, Type >::ls_, and spot::explicit_graph< State, Type >::sl_.
void spot::explicit_graph< State, tgba >::add_state_alias | ( | const label_t & | alias, |
const label_t & | real | ||
) | [inline, inherited] |
old implementation in tgba_explicit_string 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 >::ls_.
virtual bdd spot::explicit_graph< State, tgba >::all_acceptance_conditions | ( | ) | const [inline, virtual, inherited] |
void spot::explicit_graph< State, tgba >::complement_all_acceptance_conditions | ( | ) | [inline, inherited] |
virtual bdd spot::explicit_graph< State, tgba >::compute_support_conditions | ( | const spot::state * | state | ) | const [inline, protected, virtual, inherited] |
Implements spot::tgba.
References down_cast.
virtual bdd spot::explicit_graph< State, tgba >::compute_support_variables | ( | const spot::state * | state | ) | const [inline, protected, virtual, inherited] |
Implements spot::tgba.
References down_cast.
void spot::explicit_graph< State, tgba >::copy_acceptance_conditions_of | ( | const tgba * | a | ) | [inline, inherited] |
Copy the acceptance conditions of a tgba.
If used, this function should be called before creating any transition.
References spot::explicit_graph< State, Type >::all_acceptance_conditions_computed_, spot::explicit_graph< State, Type >::dict_, spot::tgba::neg_acceptance_conditions(), spot::explicit_graph< State, Type >::neg_acceptance_conditions_, and spot::bdd_dict::register_acceptance_variables().
transition* spot::explicit_graph< State, tgba >::create_trainsition | ( | const label_t & | source, |
const label_t & | dest | ||
) | [inline, inherited] |
transition* spot::explicit_graph< State, tgba >::create_transition | ( | State * | source, |
const State * | dest | ||
) | [inline, inherited] |
transition* spot::explicit_graph< State, tgba >::create_transition | ( | const label_t & | source, |
const label_t & | dest | ||
) | [inline, inherited] |
void spot::explicit_graph< State, tgba >::declare_acceptance_condition | ( | const ltl::formula * | f | ) | [inline, inherited] |
References spot::explicit_graph< State, Type >::all_acceptance_conditions_computed_, spot::ltl::formula::destroy(), spot::explicit_graph< State, Type >::dict_, spot::explicit_graph< State, Type >::ls_, spot::explicit_graph< State, Type >::neg_acceptance_conditions_, and spot::bdd_dict::register_acceptance_variable().
virtual std::string spot::explicit_graph< State, tgba >::format_state | ( | const spot::state * | state | ) | const [inline, virtual, inherited] |
Implements spot::tgba.
References down_cast, spot::explicit_graph< State, Type >::sl_, and spot::explicit_graph< State, Type >::to_string_func_.
bdd spot::explicit_graph< State, tgba >::get_acceptance_condition | ( | const ltl::formula * | f | ) | [inline, protected, inherited] |
virtual bdd_dict* spot::explicit_graph< State, tgba >::get_dict | ( | ) | const [inline, virtual, inherited] |
Implements spot::tgba.
References spot::explicit_graph< State, Type >::dict_.
virtual State* spot::explicit_graph< State, tgba >::get_init_state | ( | ) | const [inline, virtual, inherited] |
Implements spot::tgba.
References spot::explicit_graph< State, Type >::add_default_init(), and spot::explicit_graph< State, Type >::init_.
const label_t& spot::explicit_graph< State, tgba >::get_label | ( | const State * | s | ) | const [inline, inherited] |
References spot::explicit_graph< State, Type >::sl_.
const label_t& spot::explicit_graph< State, tgba >::get_label | ( | const spot::state * | s | ) | const [inline, inherited] |
References down_cast, and spot::explicit_graph< State, Type >::get_label().
to_string_func_t spot::explicit_graph< State, tgba >::get_to_string_func | ( | ) | const [inline, inherited] |
transition* spot::explicit_graph< State, tgba >::get_transition | ( | const tgba_explicit_succ_iterator< State > * | si | ) | [inline, inherited] |
bool spot::explicit_graph< State, tgba >::has_acceptance_condition | ( | const ltl::formula * | f | ) | const [inline, inherited] |
bool spot::explicit_graph< State, tgba >::has_state | ( | const label_t & | name | ) | [inline, inherited] |
References spot::explicit_graph< State, Type >::ls_.
void spot::explicit_graph< State, tgba >::merge_transitions | ( | ) | [inline, inherited] |
virtual bdd spot::explicit_graph< State, tgba >::neg_acceptance_conditions | ( | ) | const [inline, virtual, inherited] |
Implements spot::tgba.
References spot::explicit_graph< State, Type >::neg_acceptance_conditions_.
virtual unsigned int spot::tgba::number_of_acceptance_conditions | ( | ) | const [virtual, inherited] |
The number of acceptance conditions.
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 [virtual, inherited] |
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).
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 | ) | [inline, inherited] |
Acceptance conditions handlingx.
References spot::explicit_graph< State, Type >::all_acceptance_conditions_, spot::explicit_graph< State, Type >::all_acceptance_conditions_computed_, spot::compute_neg_acceptance_conditions(), spot::explicit_graph< State, Type >::dict_, spot::explicit_graph< State, Type >::neg_acceptance_conditions_, and spot::bdd_dict::register_acceptance_variables().
State* spot::explicit_graph< State, tgba >::set_init_state | ( | const label_t & | state | ) | [inline, inherited] |
void spot::explicit_graph< State, tgba >::set_to_string_func | ( | to_string_func_t | f | ) | [inline, inherited] |
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 [inline, virtual, inherited] |
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.
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 [virtual, inherited] |
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().
t | a non-done tgba_succ_iterator for this automaton |
Reimplemented in spot::tgba_product, and spot::tgba_scc.
bdd spot::explicit_graph< State, tgba >::all_acceptance_conditions_ [mutable, protected, inherited] |
bool spot::explicit_graph< State, tgba >::all_acceptance_conditions_computed_ [mutable, protected, inherited] |
bdd_dict* spot::explicit_graph< State, tgba >::dict_ [protected, inherited] |
State* spot::explicit_graph< State, tgba >::init_ [protected, inherited] |
const state* spot::tgba::last_support_conditions_input_ [mutable, protected, inherited] |
const state* spot::tgba::last_support_variables_input_ [mutable, protected, inherited] |
ls_map spot::explicit_graph< State, tgba >::ls_ [protected, inherited] |
bdd spot::explicit_graph< State, tgba >::neg_acceptance_conditions_ [protected, inherited] |
sl_map spot::explicit_graph< State, tgba >::sl_ [protected, inherited] |
to_string_func_t spot::explicit_graph< State, tgba >::to_string_func_ [protected, inherited] |