12#ifndef MCRL2_MODAL_FORMULA_MAXIMAL_CLOSED_SUBFORMULA_H
13#define MCRL2_MODAL_FORMULA_MAXIMAL_CLOSED_SUBFORMULA_H
19namespace state_formulas {
48template <
template <
class>
class Traverser,
class Node,
class Derived>
51 typedef Traverser<Derived>
super;
57 return static_cast<Derived&
>(*this);
65 void push(
const Node& node)
86 const Node&
top()
const
129 const std::set<state_formulas::state_formula>& formulas_ = std::set<state_formulas::state_formula>()
138 out <<
"<node>variables = ";
143 out <<
" formulas = ";
151template <
typename Derived>
167 return static_cast<Derived&
>(*this);
170 template <
typename T>
203 template <
typename T>
213 template <
typename T>
218 result.
variables.insert(i->variables.begin(), i->variables.end());
229 result.
formulas.insert(i->formulas.begin(), i->formulas.end());
251 return f.
top().formulas;
Standard exception class for reporting runtime errors.
#define mCRL2log(LEVEL)
mCRL2log(LEVEL) provides the stream used to log.
bool is_data_expression(const atermpp::aterm &x)
Test for a data_expression expression.
std::set< data::variable > find_free_variables(const data::data_expression &x)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...