mCRL2
|
#include <pbes_explorer.h>
Public Types | |
typedef parity_game_generator::operation_type | operation_type |
The variable sequence type. | |
Public Member Functions | |
bool | get_reset_option () const |
Returns if the reset option is set. | |
int | get_number_of_groups () const |
Returns the number of transition groups. | |
const std::vector< std::string > & | get_transition_variable_names () const |
Returns the map from transition group number to the variable name of the equation to which the transition group belongs. | |
const std::vector< operation_type > & | get_transition_types () const |
Returns the map from transition group number to the type of the right hand side of the equation to which the transition group belongs. | |
const std::map< std::string, operation_type > & | get_variable_types () const |
Returns the map from variable names to the type of the right hand side of the equation for the variable. | |
const std::map< std::string, int > & | get_variable_priorities () const |
Returns the map from variable names to the priority of the equation for the variable. | |
const std::map< std::string, std::vector< std::string > > & | get_variable_parameter_signatures () const |
Returns the map from variable names to the list of parameters signatures for the variable. | |
const std::map< std::string, std::vector< int > > & | get_variable_parameter_indices () const |
Returns the map from variable names to the list of indices of the parameters signatures for the variable according the order in the list of parameter signatures for the system. | |
const std::map< std::string, std::map< int, int > > & | get_variable_parameter_index_positions () const |
Returns the map from variable names to the map from indices of parameter signatures for the variable (according to the list of parameter signatures for the system) to the index of the type of the parameter (in the list of types for the system). | |
const lts_type & | get_lts_type () const |
Returns the LTS Type. | |
const std::map< int, std::vector< bool > > & | get_dependency_matrix () const |
Returns the dependency matrix. | |
const std::map< int, std::vector< bool > > & | get_read_matrix () const |
Returns the read dependency matrix. | |
const std::map< int, std::vector< bool > > & | get_write_matrix () const |
Returns the write dependency matrix. | |
int | get_index (const std::string &signature) |
Returns the index for a parameter signature in the list of parameter signatures for the system. | |
bool | is_read_dependent_propvar (int group) |
Determines if group is read dependent on the propositional variable. Returns true, because the propositional variable is needed to determine if the group belongs to the variable. | |
bool | is_read_dependent_parameter (int group, int part) |
Determines if group is read dependent on part part of the state vector. Returns true if the parameter represented by part is in the set of parameters of the state variable for the group or in the set of data variables used in the expression of for the group. | |
bool | is_write_dependent_propvar (int group) |
Determines if group is write dependent on the propositional variable. Returns true if propositional variables other than the group variable occur in the group expression or the group expression may directly evaluate to true or false . | |
bool | is_write_dependent_parameter (int group, int part) |
Determines if group is read dependent on part part of the state vector. Returns true if the parameter represented by part is in the set of data variables changed by the expression for the group. | |
std::string | state_to_string (const ltsmin_state &state) |
Returns a string representation for state state . | |
Static Public Member Functions | |
static std::string | get_param_signature (const std::string ¶mname, const std::string ¶mtype) |
Returns a signature using name and type of a parameter. | |
Protected Member Functions | |
const std::vector< pbes_expression > & | get_transition_expressions () const |
Returns the map from transition group number to the expression of the transition group. | |
const std::map< std::string, propositional_variable > & | get_variables () const |
Returns the map from variable names to the variable object for the variable. | |
const std::map< std::string, fixpoint_symbol > & | get_variable_symbols () const |
Returns the map from variable names to the fixpoint operator of the equation for the variable. | |
const std::map< std::string, data::variable_list > & | get_variable_parameters () const |
Returns the map from variable names to the sequence of parameters for the variable. | |
std::set< std::string > | used (const pbes_expression &expr) |
Computes the free variables actually used, not only passed through, in an expression. | |
std::set< std::string > | used (const pbes_expression &expr, const std::set< std::string > &L) |
Computes the free variables actually used, not only passed through, in an expression. | |
std::set< std::string > | copied (const pbes_expression &expr) |
Computes the free variables which are copied/passed through (to a recursive variable) in an expression. | |
std::set< std::string > | copied (const pbes_expression &expr, const std::set< std::string > &L) |
Computes the free variables which are copied/passed through (to a recursive variable) in an expression. | |
std::set< std::string > | changed (const pbes_expression &phi) |
Computes the set of parameters changed in the expression. | |
std::set< std::string > | changed (const pbes_expression &phi, const std::set< std::string > &L) |
Computes the set of parameters changed in the expression. | |
std::set< std::string > | reset (const pbes_expression &phi, const std::set< std::string > &d) |
Computes the set of parameters reset in the expression. | |
std::vector< int > | get_param_indices (const data::variable_list ¶ms) |
Converts a variable_sequence_type into a sequence of indices of parameter signatures in the list of parameter signatures for the system. | |
std::map< int, int > | get_param_index_positions (const data::variable_list ¶ms) |
Converts a variable_sequence_type into a map from indices of parameter signatures (in the list of parameter signatures for the system) to the index of the type of the parameter (in the list of types for the system). | |
const data_expression & | get_default_value (int index) |
Returns a default value for the sort of a parameter signature. | |
lts_info (pbes &p, detail::pbes_greybox_interface *pgg, bool reset, bool always_split) | |
Constructor. | |
Static Protected Member Functions | |
static bool | tf (const pbes_expression &phi) |
Determines if the term phi contains a branch that directly results in true or false (not a variable). | |
static std::set< std::string > | occ (const pbes_expression &expr) |
Computes the propositional variables used in an expression. | |
static std::set< std::string > | free (const pbes_expression &expr) |
Computes the free variables read in an expression. | |
static std::set< std::string > | get_param_set (const data::variable_list ¶ms) |
Converts a variable_sequence_type into a set of parameter signatures. | |
static std::vector< std::string > | get_param_sequence (const data::variable_list ¶ms) |
Converts a variable_sequence_type into a sequence of parameter signatures. | |
static std::string | get_param_signature (const variable ¶m) |
Returns a signature for parameter param . | |
Private Member Functions | |
int | count_variables (const pbes_expression &e) |
Counts the number of propositional variables in an expression. | |
bool | is_pass_through_state (const propositional_variable_instantiation &propvar) |
Determines if the propositional variable instantiation is one that only copies parameters from the current state. | |
std::vector< pbes_expression > | split_expression_and_substitute_variables (const pbes_expression &e, int current_priority, operation_type current_type, std::set< std::string > vars_stack) |
Splits the expression into parts (disjuncts or conjuncts) and recursively tries to substitute the propositional variables with the parts of the right hand side of the equation for the variable. | |
void | compute_lts_type () |
Computes LTS Type from PBES. | |
void | compute_transition_groups () |
Computes transition groups from PBES. | |
void | compute_dependency_matrix () |
Computes dependency matrix from PBES. | |
Private Attributes | |
pbes & | p |
detail::pbes_greybox_interface * | pgg |
bool | reset_option |
bool | always_split_option |
lts_type | type |
std::map< int, std::vector< bool > > | read_matrix |
std::map< int, std::vector< bool > > | write_matrix |
std::map< int, std::vector< bool > > | matrix |
std::map< std::string, int > | param_index |
std::vector< data_expression > | param_default_values |
int | number_of_groups |
std::vector< pbes_expression > | transition_expression |
std::vector< pbes_expression > | transition_expression_plain |
std::vector< std::string > | transition_variable_name |
std::vector< operation_type > | transition_type |
std::map< std::string, propositional_variable > | variables |
std::map< std::string, operation_type > | variable_type |
std::map< std::string, fixpoint_symbol > | variable_symbol |
std::map< std::string, int > | variable_priority |
std::map< std::string, pbes_expression > | variable_expression |
std::map< std::string, data::variable_list > | variable_parameters |
std::map< std::string, std::vector< std::string > > | variable_parameter_signatures |
std::map< std::string, std::vector< int > > | variable_parameter_indices |
std::map< std::string, std::map< int, int > > | variable_parameter_index_positions |
Static Private Attributes | |
static std::map< variable, std::string > | variable_signatures |
Friends | |
class | ltsmin_state |
class | explorer |
Definition at line 180 of file pbes_explorer.h.
The variable sequence type.
Definition at line 187 of file pbes_explorer.h.
|
protected |
|
protected |
Computes the set of parameters changed in the expression.
phi |
Definition at line 782 of file pbes_explorer.cpp.
|
protected |
Computes the set of parameters changed in the expression.
phi | |
L |
Definition at line 789 of file pbes_explorer.cpp.
|
private |
Computes dependency matrix from PBES.
Definition at line 546 of file pbes_explorer.cpp.
|
private |
Computes LTS Type from PBES.
Definition at line 182 of file pbes_explorer.cpp.
|
private |
Computes transition groups from PBES.
Definition at line 411 of file pbes_explorer.cpp.
|
protected |
Computes the free variables which are copied/passed through (to a recursive variable) in an expression.
expr |
Definition at line 1011 of file pbes_explorer.cpp.
|
protected |
Computes the free variables which are copied/passed through (to a recursive variable) in an expression.
expr | |
L |
Definition at line 1018 of file pbes_explorer.cpp.
|
inlineprivate |
Counts the number of propositional variables in an expression.
Definition at line 274 of file pbes_explorer.cpp.
|
staticprotected |
Computes the free variables read in an expression.
expr |
Definition at line 929 of file pbes_explorer.cpp.
|
protected |
Returns a default value for the sort of a parameter signature.
index | the index of the parameter signature. |
Definition at line 684 of file pbes_explorer.cpp.
const std::map< int, std::vector< bool > > & mcrl2::pbes_system::lts_info::get_dependency_matrix | ( | ) | const |
Returns the dependency matrix.
Definition at line 660 of file pbes_explorer.cpp.
int mcrl2::pbes_system::lts_info::get_index | ( | const std::string & | signature | ) |
Returns the index for a parameter signature in the list of parameter signatures for the system.
signature | The parameter signature. |
Definition at line 678 of file pbes_explorer.cpp.
const lts_type & mcrl2::pbes_system::lts_info::get_lts_type | ( | ) | const |
Returns the LTS Type.
Definition at line 654 of file pbes_explorer.cpp.
int mcrl2::pbes_system::lts_info::get_number_of_groups | ( | ) | const |
Returns the number of transition groups.
Definition at line 583 of file pbes_explorer.cpp.
|
protected |
Converts a variable_sequence_type into a map from indices of parameter signatures (in the list of parameter signatures for the system) to the index of the type of the parameter (in the list of types for the system).
params | a sequence of variables. |
Definition at line 1137 of file pbes_explorer.cpp.
|
protected |
Converts a variable_sequence_type into a sequence of indices of parameter signatures in the list of parameter signatures for the system.
params | a sequence of variables. |
Definition at line 1126 of file pbes_explorer.cpp.
|
staticprotected |
Converts a variable_sequence_type into a sequence of parameter signatures.
params | a sequence of variables. |
Definition at line 1116 of file pbes_explorer.cpp.
|
staticprotected |
Converts a variable_sequence_type into a set of parameter signatures.
params | a sequence of variables. |
Definition at line 1106 of file pbes_explorer.cpp.
|
inlinestatic |
Returns a signature using name and type of a parameter.
paramname | the parameter name. |
paramtype | the parameter type. |
Definition at line 1168 of file pbes_explorer.cpp.
|
inlinestaticprotected |
Returns a signature for parameter param
.
param | a parameter. |
Definition at line 1153 of file pbes_explorer.cpp.
const std::map< int, std::vector< bool > > & mcrl2::pbes_system::lts_info::get_read_matrix | ( | ) | const |
Returns the read dependency matrix.
Definition at line 666 of file pbes_explorer.cpp.
bool mcrl2::pbes_system::lts_info::get_reset_option | ( | ) | const |
Returns if the reset option is set.
Definition at line 577 of file pbes_explorer.cpp.
|
protected |
Returns the map from transition group number to the expression of the transition group.
Definition at line 589 of file pbes_explorer.cpp.
const std::vector< lts_info::operation_type > & mcrl2::pbes_system::lts_info::get_transition_types | ( | ) | const |
Returns the map from transition group number to the type of the right hand side of the equation to which the transition group belongs.
Definition at line 601 of file pbes_explorer.cpp.
const std::vector< std::string > & mcrl2::pbes_system::lts_info::get_transition_variable_names | ( | ) | const |
Returns the map from transition group number to the variable name of the equation to which the transition group belongs.
Definition at line 595 of file pbes_explorer.cpp.
const std::map< std::string, std::map< int, int > > & mcrl2::pbes_system::lts_info::get_variable_parameter_index_positions | ( | ) | const |
Returns the map from variable names to the map from indices of parameter signatures for the variable (according to the list of parameter signatures for the system) to the index of the type of the parameter (in the list of types for the system).
Definition at line 648 of file pbes_explorer.cpp.
const std::map< std::string, std::vector< int > > & mcrl2::pbes_system::lts_info::get_variable_parameter_indices | ( | ) | const |
Returns the map from variable names to the list of indices of the parameters signatures for the variable according the order in the list of parameter signatures for the system.
Definition at line 642 of file pbes_explorer.cpp.
const std::map< std::string, std::vector< std::string > > & mcrl2::pbes_system::lts_info::get_variable_parameter_signatures | ( | ) | const |
Returns the map from variable names to the list of parameters signatures for the variable.
Definition at line 636 of file pbes_explorer.cpp.
|
protected |
Returns the map from variable names to the sequence of parameters for the variable.
Definition at line 630 of file pbes_explorer.cpp.
const std::map< std::string, int > & mcrl2::pbes_system::lts_info::get_variable_priorities | ( | ) | const |
Returns the map from variable names to the priority of the equation for the variable.
Definition at line 624 of file pbes_explorer.cpp.
|
protected |
Returns the map from variable names to the fixpoint operator of the equation for the variable.
Definition at line 618 of file pbes_explorer.cpp.
const std::map< std::string, lts_info::operation_type > & mcrl2::pbes_system::lts_info::get_variable_types | ( | ) | const |
Returns the map from variable names to the type of the right hand side of the equation for the variable.
Definition at line 613 of file pbes_explorer.cpp.
|
protected |
Returns the map from variable names to the variable object for the variable.
Definition at line 607 of file pbes_explorer.cpp.
const std::map< int, std::vector< bool > > & mcrl2::pbes_system::lts_info::get_write_matrix | ( | ) | const |
Returns the write dependency matrix.
Definition at line 672 of file pbes_explorer.cpp.
|
inlineprivate |
Determines if the propositional variable instantiation is one that only copies parameters from the current state.
Definition at line 233 of file pbes_explorer.cpp.
bool mcrl2::pbes_system::lts_info::is_read_dependent_parameter | ( | int | group, |
int | part | ||
) |
Determines if group
is read dependent on part part
of the state vector. Returns true if the parameter represented by part
is in the set of parameters of the state variable for the group or in the set of data variables used in the expression of for the group.
group | the number of the transition group. |
part | the number of the state part. |
Definition at line 696 of file pbes_explorer.cpp.
bool mcrl2::pbes_system::lts_info::is_read_dependent_propvar | ( | int | group | ) |
Determines if group
is read dependent on the propositional variable. Returns true, because the propositional variable is needed to determine if the group belongs to the variable.
group | the number of the transition group. |
Definition at line 690 of file pbes_explorer.cpp.
bool mcrl2::pbes_system::lts_info::is_write_dependent_parameter | ( | int | group, |
int | part | ||
) |
Determines if group
is read dependent on part part
of the state vector. Returns true if the parameter represented by part
is in the set of data variables changed by the expression for the group.
group | the number of the transition group. |
part | the number of the state part. |
Definition at line 757 of file pbes_explorer.cpp.
bool mcrl2::pbes_system::lts_info::is_write_dependent_propvar | ( | int | group | ) |
Determines if group
is write dependent on the propositional variable. Returns true if propositional variables other than the group variable occur in the group expression or the group expression may directly evaluate to true
or false
.
group | the number of the transition group. |
Definition at line 731 of file pbes_explorer.cpp.
|
staticprotected |
Computes the propositional variables used in an expression.
expr |
Definition at line 907 of file pbes_explorer.cpp.
|
protected |
Computes the set of parameters reset in the expression.
phi | |
d |
Definition at line 846 of file pbes_explorer.cpp.
|
private |
Splits the expression into parts (disjuncts or conjuncts) and recursively tries to substitute the propositional variables with the parts of the right hand side of the equation for the variable.
e | the expression |
current_priority | the priority of the current equation for which the parts are computed |
current_type | the operation type (AND/OR) of the current equation for which the parts are computed |
vars_stack | used for detection of infinite recursion. Please, initialise to the empty set. |
Definition at line 319 of file pbes_explorer.cpp.
std::string mcrl2::pbes_system::lts_info::state_to_string | ( | const ltsmin_state & | state | ) |
Returns a string representation for state state
.
state |
Definition at line 1075 of file pbes_explorer.cpp.
|
staticprotected |
Determines if the term phi contains a branch that directly results in true
or false
(not a variable).
phi | a PBES expression |
Definition at line 885 of file pbes_explorer.cpp.
|
protected |
Computes the free variables actually used, not only passed through, in an expression.
expr |
Definition at line 940 of file pbes_explorer.cpp.
|
protected |
Computes the free variables actually used, not only passed through, in an expression.
expr | |
L |
Definition at line 947 of file pbes_explorer.cpp.
|
friend |
Definition at line 183 of file pbes_explorer.h.
|
friend |
Definition at line 182 of file pbes_explorer.h.
|
private |
Definition at line 192 of file pbes_explorer.h.
|
private |
Definition at line 196 of file pbes_explorer.h.
|
private |
Definition at line 199 of file pbes_explorer.h.
|
private |
Definition at line 189 of file pbes_explorer.h.
|
private |
Definition at line 198 of file pbes_explorer.h.
|
private |
Definition at line 197 of file pbes_explorer.h.
|
private |
Definition at line 190 of file pbes_explorer.h.
|
private |
Definition at line 194 of file pbes_explorer.h.
|
private |
Definition at line 191 of file pbes_explorer.h.
|
private |
Definition at line 200 of file pbes_explorer.h.
|
private |
Definition at line 201 of file pbes_explorer.h.
|
private |
Definition at line 203 of file pbes_explorer.h.
|
private |
Definition at line 202 of file pbes_explorer.h.
|
private |
Definition at line 193 of file pbes_explorer.h.
|
private |
Definition at line 208 of file pbes_explorer.h.
|
private |
Definition at line 212 of file pbes_explorer.h.
|
private |
Definition at line 211 of file pbes_explorer.h.
|
private |
Definition at line 210 of file pbes_explorer.h.
|
private |
Definition at line 209 of file pbes_explorer.h.
|
private |
Definition at line 207 of file pbes_explorer.h.
|
staticprivate |
Definition at line 214 of file pbes_explorer.h.
|
private |
Definition at line 206 of file pbes_explorer.h.
|
private |
Definition at line 205 of file pbes_explorer.h.
|
private |
Definition at line 204 of file pbes_explorer.h.
|
private |
Definition at line 195 of file pbes_explorer.h.