Class for generating a BES from a PBES. This BES can be interpreted as a graph corresponding to a parity game problem. The proposition variables of the BES correspond to the vertices of the graph. An interface to the graph is provided in which the vertices correspond to integer values. The values are in the range [0, 1, ..., n], i.e. there are no holes in the sequence. Each vertex is labeled with a priority value, which is the block nesting depth of the proposition variable in the BES.
More...
#include <parity_game_generator.h>
Class for generating a BES from a PBES. This BES can be interpreted as a graph corresponding to a parity game problem. The proposition variables of the BES correspond to the vertices of the graph. An interface to the graph is provided in which the vertices correspond to integer values. The values are in the range [0, 1, ..., n], i.e. there are no holes in the sequence. Each vertex is labeled with a priority value, which is the block nesting depth of the proposition variable in the BES.
Definition at line 35 of file parity_game_generator.h.
◆ substitution_function
◆ operation_type
◆ parity_game_generator()
mcrl2::pbes_system::parity_game_generator::parity_game_generator |
( |
pbes & |
p, |
|
|
bool |
true_false_dependencies = false , |
|
|
bool |
is_min_parity = true , |
|
|
data::rewriter::strategy |
rewrite_strategy = data::jitty |
|
) |
| |
|
inlineexplicit |
Constructor.
- Parameters
-
p | A PBES |
true_false_dependencies | If true, nodes are generated for the values true and false . |
is_min_parity | If true a min-parity game is produced, otherwise a max-parity game |
rewrite_strategy | Strategy to use for the data rewriter |
Definition at line 266 of file parity_game_generator.h.
◆ ~parity_game_generator()
virtual mcrl2::pbes_system::parity_game_generator::~parity_game_generator |
( |
| ) |
|
|
virtualdefault |
◆ add_bes_equation()
std::size_t mcrl2::pbes_system::parity_game_generator::add_bes_equation |
( |
pbes_expression |
t, |
|
|
std::size_t |
priority |
|
) |
| |
|
inlineprotected |
Adds a BES equation for a given PBES expression, if it not already exists.
- Parameters
-
t | A PBES expression |
priority | A positive integer |
- Returns
- The index of a BES equation corresponding to the given PBES expression. If no equation exists for the expression, a new one is added.
Definition at line 83 of file parity_game_generator.h.
◆ compute_equation_index_map()
void mcrl2::pbes_system::parity_game_generator::compute_equation_index_map |
( |
| ) |
|
|
inlineprotected |
◆ compute_priorities()
void mcrl2::pbes_system::parity_game_generator::compute_priorities |
( |
const std::vector< pbes_equation > & |
equations | ) |
|
|
inlineprotected |
◆ expand_rhs()
◆ get_dependencies()
virtual std::set< std::size_t > mcrl2::pbes_system::parity_game_generator::get_dependencies |
( |
std::size_t |
index | ) |
|
|
inlinevirtual |
Returns the successors of a vertex in the graph.
- Parameters
-
- Returns
- The indices of the proposition variables that appear in the right hand side of the BES equation of the given index.
Definition at line 381 of file parity_game_generator.h.
◆ get_expression_operation()
Returns the vertex type.
- Parameters
-
- Returns
- PGAME_AND if the expression is a conjunction, PGAME_OR if it is a disjunction.
Definition at line 306 of file parity_game_generator.h.
◆ get_initial_state()
◆ get_initial_values()
virtual std::set< std::size_t > mcrl2::pbes_system::parity_game_generator::get_initial_values |
( |
| ) |
|
|
inlinevirtual |
Returns the vertices for which a solution is requested. By default a set containing the values 0, 1 and 2 is returned, corresponding to the expressions true, false and the initial state of the PBES.
- Returns
- A set of indices corresponding to proposition variables of the generated BES.
Definition at line 362 of file parity_game_generator.h.
◆ get_operation()
virtual operation_type mcrl2::pbes_system::parity_game_generator::get_operation |
( |
std::size_t |
index | ) |
|
|
inlinevirtual |
Returns the vertex type.
- Parameters
-
- Returns
- PGAME_AND if the corresponding BES equation is a conjunction, PGAME_OR if it is a disjunction.
Definition at line 292 of file parity_game_generator.h.
◆ get_priority()
virtual std::size_t mcrl2::pbes_system::parity_game_generator::get_priority |
( |
std::size_t |
index | ) |
|
|
inlinevirtual |
Returns the priority of a vertex. The priority of the first equation is 0 if it is a maximal fixpoint, and 1 if it is a minimal fixpoint.
- Parameters
-
- Returns
- The block nesting depth of the variable in the BES.
Definition at line 349 of file parity_game_generator.h.
◆ initialize_generation()
virtual void mcrl2::pbes_system::parity_game_generator::initialize_generation |
( |
| ) |
|
|
inlineprotectedvirtual |
◆ make_substitution()
Generates a substitution function for the pbesinst rewriter.
- Parameters
-
v | A sequence of data variables |
e | A sequence of data expressions |
sigma | The result. |
Definition at line 116 of file parity_game_generator.h.
◆ print_bes_equation()
virtual std::string mcrl2::pbes_system::parity_game_generator::print_bes_equation |
( |
std::size_t |
index, |
|
|
const std::set< std::size_t > & |
rhs |
|
) |
| |
|
inlineprotectedvirtual |
◆ print_equation_count()
std::string mcrl2::pbes_system::parity_game_generator::print_equation_count |
( |
std::size_t |
size, |
|
|
std::size_t |
step = 1000 |
|
) |
| const |
|
inlineprotected |
◆ print_variable_mapping()
virtual void mcrl2::pbes_system::parity_game_generator::print_variable_mapping |
( |
| ) |
|
|
inlinevirtual |
Prints the mapping from BES variables to the corresponding PBES expressions.
Definition at line 449 of file parity_game_generator.h.
◆ datar
◆ m_bes
std::vector<std::pair<pbes_expression, std::size_t> > mcrl2::pbes_system::parity_game_generator::m_bes |
|
protected |
Contains intermediate results of the BES that is being generated. m_bes[i] represents a BES equation corresponding to BES variable i. m_bes[i].first is the right hand side of the BES equation m_bes[i].second is the block nesting depth of the corresponding PBES variable.
Definition at line 67 of file parity_game_generator.h.
◆ m_initialized
bool mcrl2::pbes_system::parity_game_generator::m_initialized |
|
protected |
Mark whether initialization has been initialized. Needed to properly cope with virtual inheritance!
Definition at line 43 of file parity_game_generator.h.
◆ m_is_min_parity_game
bool mcrl2::pbes_system::parity_game_generator::m_is_min_parity_game |
|
protected |
◆ m_max_priority
std::size_t mcrl2::pbes_system::parity_game_generator::m_max_priority = 0 |
|
protected |
◆ m_pbes
pbes& mcrl2::pbes_system::parity_game_generator::m_pbes |
|
protected |
◆ m_pbes_equation_index
◆ m_pbes_expression_index
std::map<pbes_expression, std::size_t> mcrl2::pbes_system::parity_game_generator::m_pbes_expression_index |
|
protected |
◆ m_priorities
◆ m_true_false_dependencies
bool mcrl2::pbes_system::parity_game_generator::m_true_false_dependencies |
|
protected |
Determines what kind of BES equations are generated for true and false.
Definition at line 70 of file parity_game_generator.h.
The documentation for this class was generated from the following file: