12#ifndef MCRL2_PBES_REPLACE_CAPTURE_AVOIDING_WITH_AN_IDENTIFIER_GENERATOR_H
13#define MCRL2_PBES_REPLACE_CAPTURE_AVOIDING_WITH_AN_IDENTIFIER_GENERATOR_H
15#include "mcrl2/data/replace_capture_avoiding_with_an_identifier_generator.h"
16#include "mcrl2/pbes/add_binding.h"
17#include "mcrl2/pbes/builder.h"
26template<
template<
class>
class Builder,
class Derived,
class Substitution,
class IdentifierGenerator>
43 data::variable_list v = update_sigma.push(x.variables());
46 make_forall(result, v, apply(x.body()));
53 data::variable_list v = update_sigma.push(x.variables());
56 make_exists(result, v, apply(x.body()));
62 data::variable_list v = update_sigma.push(x.variable().parameters());
63 x.variable() = propositional_variable(x.variable().name(), v);
72 std::set<data::variable> v = update_sigma(x.global_variables());
73 x.global_variables() = v;
74 update(x.equations());
96template <
typename T,
data::IsSubstitution Substitution,
typename IdentifierGenerator>
99 IdentifierGenerator& id_generator
115template <
typename T,
data::IsSubstitution Substitution,
typename IdentifierGenerator>
118 IdentifierGenerator& id_generator
\brief The existential quantification operator for pbes expressions
const pbes_expression & body() const
\brief The universal quantification operator for pbes expressions
const pbes_expression & body() const
pbes_expression & formula()
Returns the predicate formula on the right hand side of the equation.
pbes_expression & operator=(const pbes_expression &) noexcept=default
parameterized boolean equation system
T replace_variables_capture_avoiding_with_an_identifier_generator(const T &x, Substitution &sigma, IdentifierGenerator &id_generator)
void replace_variables_capture_avoiding_with_an_identifier_generator(T &x, Substitution &sigma, IdentifierGenerator &id_generator)
void apply(T &result, const exists &x)
add_capture_avoiding_replacement_with_an_identifier_generator(Substitution &sigma, IdentifierGenerator &id_generator)
void apply(T &result, const forall &x)
void update(pbes_equation &x)