12#ifndef MCRL2_PBES_REMOVE_EQUATIONS_H
13#define MCRL2_PBES_REMOVE_EQUATIONS_H
19namespace pbes_system {
26 std::ostringstream out;
27 out <<
"\nremoved the following equations:" << std::endl;
40 typedef std::vector<pbes_equation>::const_iterator iterator;
43 std::map<core::identifier_string, iterator> index;
49 index.insert(std::pair<core::identifier_string, iterator>(i->variable().name(),i));
52 std::set<core::identifier_string> visited;
53 std::set<core::identifier_string> explored;
55 while (!visited.empty())
58 visited.erase(visited.begin());
64 if (explored.find(i.name()) == explored.end())
66 visited.insert(i.name());
71 std::set<propositional_variable> result;
74 result.insert(index[i]->variable());
84 std::vector<propositional_variable> result;
87 std::vector<pbes_equation> equations;
90 if (V.find(eqn.variable()) != V.end())
92 equations.push_back(eqn);
96 result.push_back(eqn.variable());
Term containing a string.
const_iterator begin() const
Returns an iterator pointing to the first argument.
parameterized boolean equation system
const propositional_variable_instantiation & initial_state() const
Returns the initial state.
const std::vector< pbes_equation > & equations() const
Returns the equations.
\brief A propositional variable instantiation
const core::identifier_string & name() const
\brief A propositional variable declaration
std::string print_removed_equations(const std::vector< propositional_variable > &removed)
std::set< propositional_variable > reachable_variables(const pbes &p)
std::vector< propositional_variable > remove_unreachable_variables(pbes &p)
Removes equations that are not (syntactically) reachable from the initial state of a PBES.
std::string pp(const fixpoint_symbol &x)
void find_propositional_variable_instantiations(Container const &container, OutputIterator o)
Returns all data variables that occur in a range of expressions.
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...