spot
1.1.4
|
#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 () |
size_t | num_states () const |
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) |
transition * | get_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_t & | get_label (const State *s) const |
const label_t & | get_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_dict * | get_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 state * | project_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_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) |
|
protectedinherited |
|
inherited |
|
inherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inline |
|
inlinevirtual |
|
private |
|
inlineinherited |
|
inlineinherited |
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().
|
inlineinherited |
|
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().
|
inlineinherited |
References spot::explicit_graph< State, Type >::add_state().
|
inlineinherited |
Return the state_explicit for name, creating the state if it does not exist.
References spot::explicit_graph< State, Type >::alias_, spot::explicit_graph< State, Type >::init_, spot::explicit_graph< State, Type >::ls_, and spot::explicit_graph< State, Type >::sl_.
|
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_.
|
inlinevirtualinherited |
|
inlineinherited |
|
inlineprotectedvirtualinherited |
Implements spot::tgba.
References down_cast.
|
inlineprotectedvirtualinherited |
Implements spot::tgba.
References down_cast.
|
inlineinherited |
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().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
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().
|
inlinevirtualinherited |
Implements spot::tgba.
References down_cast, spot::explicit_graph< State, Type >::sl_, and spot::explicit_graph< State, Type >::to_string_func_.
|
inlineinherited |
|
inlinevirtualinherited |
Implements spot::tgba.
References spot::explicit_graph< State, Type >::dict_.
|
inlinevirtualinherited |
Implements spot::tgba.
References spot::explicit_graph< State, Type >::add_default_init(), and spot::explicit_graph< State, Type >::init_.
|
inlineinherited |
References spot::explicit_graph< State, Type >::sl_.
|
inlineinherited |
References down_cast, and spot::explicit_graph< State, Type >::get_label().
|
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_.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
References down_cast, and spot::explicit_graph< State, Type >::get_transition().
|
inlineinherited |
|
inlineinherited |
References spot::explicit_graph< State, Type >::ls_.
|
inlineinherited |
References hash_map, and spot::explicit_graph< State, Type >::ls_.
|
inlinevirtualinherited |
Implements spot::tgba.
References spot::explicit_graph< State, Type >::neg_acceptance_conditions_.
|
inlineinherited |
References spot::explicit_graph< State, Type >::sl_.
|
virtualinherited |
The number of acceptance conditions.
|
private |
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.
|
inlineinherited |
Acceptance conditions handling.
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().
|
inlineinherited |
|
inlineinherited |
|
inlinevirtualinherited |
Implements spot::tgba.
References down_cast.
|
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.
|
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.
|
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().
t | a non-done tgba_succ_iterator for this automaton |
Reimplemented in spot::tgba_product, and spot::tgba_scc.
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |