12#ifndef MCRL2_CORE_ADD_BINDING_H
13#define MCRL2_CORE_ADD_BINDING_H
24template <
template <
class>
class TraverserOrBuilder,
typename Derived,
typename Variable>
28 typedef TraverserOrBuilder<Derived>
super;
41 template <
typename Container>
44 for (
typename Container::const_iterator i = variables.begin(); i != variables.end(); ++i)
57 template <
typename Container>
60 for (
typename Container::const_iterator i = variables.begin(); i != variables.end(); ++i)
A class containing some type traits.
Traverser that defines functions for maintaining bound variables.
TraverserOrBuilder< Derived > super
std::multiset< variable_type >::size_type bind_count(const variable_type &v)
Returns the bind count of the variable v.
void decrease_bind_count(const Container &variables, typename atermpp::enable_if_container< Container, variable_type >::type *=nullptr)
Remove a sequence of variables from the multiset of bound variables.
void increase_bind_count(const Container &variables, typename atermpp::enable_if_container< Container, variable_type >::type *=nullptr)
Add a sequence of variables to the multiset of bound variables.
bool is_bound(variable_type const &v) const
Returns true if the variable v is bound.
const std::multiset< variable_type > & bound_variables() const
Returns the bound variables.
std::multiset< variable_type > m_bound_variables
void decrease_bind_count(const variable_type &var)
Remove a variable from the multiset of bound variables.
void increase_bind_count(const variable_type &var)
Add a variable to the multiset of bound variables.
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...