|
mCRL2
|
#include <pbes_explorer.h>
Public Types | |
| using | operation_type = parity_game_generator::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 = 0 |
| 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 171 of file pbes_explorer.h.
The variable sequence type.
Definition at line 178 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 537 of file pbes_explorer.cpp.
|
private |
Computes LTS Type from PBES.
Definition at line 176 of file pbes_explorer.cpp.
|
private |
Computes transition groups from PBES.
Definition at line 405 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 1009 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 1016 of file pbes_explorer.cpp.
|
inlineprivate |
Counts the number of propositional variables in an expression.
Definition at line 268 of file pbes_explorer.cpp.
|
staticprotected |
Computes the free variables read in an expression.
| expr |
Definition at line 926 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 675 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 651 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 669 of file pbes_explorer.cpp.
| const lts_type & mcrl2::pbes_system::lts_info::get_lts_type | ( | ) | const |
Returns the LTS Type.
Definition at line 645 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 574 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 1140 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 1128 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 1117 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 1172 of file pbes_explorer.cpp.
|
inlinestaticprotected |
Returns a signature for parameter param.
| param | a parameter. |
Definition at line 1157 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 657 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 568 of file pbes_explorer.cpp.
|
protected |
Returns the map from transition group number to the expression of the transition group.
Definition at line 580 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 592 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 586 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 639 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 633 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 627 of file pbes_explorer.cpp.
|
protected |
Returns the map from variable names to the sequence of parameters for the variable.
Definition at line 621 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 615 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 609 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 604 of file pbes_explorer.cpp.
|
protected |
Returns the map from variable names to the variable object for the variable.
Definition at line 598 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 663 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 227 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 687 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 681 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 754 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 725 of file pbes_explorer.cpp.
|
staticprotected |
Computes the propositional variables used in an expression.
| expr |
Definition at line 904 of file pbes_explorer.cpp.
|
protected |
Computes the set of parameters reset in the expression.
| phi | |
| d |
Definition at line 844 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 313 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 1074 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 882 of file pbes_explorer.cpp.
|
protected |
Computes the free variables actually used, not only passed through, in an expression.
| expr |
Definition at line 937 of file pbes_explorer.cpp.
|
protected |
Computes the free variables actually used, not only passed through, in an expression.
| expr | |
| L |
Definition at line 944 of file pbes_explorer.cpp.
|
friend |
Definition at line 174 of file pbes_explorer.h.
|
friend |
Definition at line 173 of file pbes_explorer.h.
|
private |
Definition at line 183 of file pbes_explorer.h.
|
private |
Definition at line 187 of file pbes_explorer.h.
|
private |
Definition at line 190 of file pbes_explorer.h.
|
private |
Definition at line 180 of file pbes_explorer.h.
|
private |
Definition at line 189 of file pbes_explorer.h.
|
private |
Definition at line 188 of file pbes_explorer.h.
|
private |
Definition at line 181 of file pbes_explorer.h.
|
private |
Definition at line 185 of file pbes_explorer.h.
|
private |
Definition at line 182 of file pbes_explorer.h.
|
private |
Definition at line 191 of file pbes_explorer.h.
|
private |
Definition at line 192 of file pbes_explorer.h.
|
private |
Definition at line 194 of file pbes_explorer.h.
|
private |
Definition at line 193 of file pbes_explorer.h.
|
private |
Definition at line 184 of file pbes_explorer.h.
|
private |
Definition at line 199 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 201 of file pbes_explorer.h.
|
private |
Definition at line 200 of file pbes_explorer.h.
|
private |
Definition at line 198 of file pbes_explorer.h.
|
staticprivate |
Definition at line 205 of file pbes_explorer.h.
|
private |
Definition at line 197 of file pbes_explorer.h.
|
private |
Definition at line 196 of file pbes_explorer.h.
|
private |
Definition at line 195 of file pbes_explorer.h.
|
private |
Definition at line 186 of file pbes_explorer.h.