12#ifndef MCRL2_LPS_REPLACE_CAPTURE_AVOIDING_WITH_AN_IDENTIFIER_GENERATOR_H
13#define MCRL2_LPS_REPLACE_CAPTURE_AVOIDING_WITH_AN_IDENTIFIER_GENERATOR_H
27template<
template<
class>
class Builder,
class Derived,
class Substitution,
class IdentifierGenerator>
43 template<
typename ActionSummand>
46 x.summation_variables() = v;
47 x.condition() =
apply(x.condition());
48 x.multi_action() =
apply(x.multi_action());
49 x.assignments() =
apply(x.assignments());
76 template<
typename LinearProcess>
80 x.process_parameters() = v;
81 update(x.action_summands());
82 update(x.deadlock_summands());
96 template<
typename Specification>
99 std::set<data::variable> v =
update_sigma(x.global_variables());
100 x.global_variables() = v;
102 x.action_labels() =
apply(x.action_labels());
103 x.initial_process() =
apply(x.initial_process());
138template <
typename T,
typename Substitution,
typename IdentifierGenerator>
141 IdentifierGenerator& id_generator,
142 typename std::enable_if<!std::is_base_of<atermpp::aterm, T>::value>::type* =
nullptr
145 data::detail::apply_replace_capture_avoiding_variables_builder_with_an_identifier_generator<lps::data_expression_builder, lps::detail::add_capture_avoiding_replacement_with_an_identifier_generator>(
sigma, id_generator).update(x);
157template <
typename T,
typename Substitution,
typename IdentifierGenerator>
160 IdentifierGenerator& id_generator,
161 typename std::enable_if<std::is_base_of<atermpp::aterm, T>::value>::type* =
nullptr
165 data::detail::apply_replace_capture_avoiding_variables_builder_with_an_identifier_generator<lps::data_expression_builder, lps::detail::add_capture_avoiding_replacement_with_an_identifier_generator>(
sigma, id_generator).apply(result, x);
LPS summand containing a multi-action.
LPS summand containing a deadlock.
const lps::deadlock & deadlock() const
Returns the deadlock of this summand.
Linear process specification.
LPS summand containing a multi-action.
const stochastic_distribution & distribution() const
Returns the distribution of this summand.
\brief A stochastic distribution
const data::variable_list & variables() const
const data::data_expression & distribution() const
Linear process specification.
const data::data_expression & condition() const
Returns the condition expression.
data::variable_list & summation_variables()
Returns the sequence of summation variables.
static RewriterCompilingJitty::substitution_type & sigma(RewriterCompilingJitty *this_rewriter)
add your file description here.
add your file description here.
void replace_variables_capture_avoiding_with_an_identifier_generator(T &x, Substitution &sigma, IdentifierGenerator &id_generator, typename std::enable_if<!std::is_base_of< atermpp::aterm, T >::value >::type *=nullptr)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
add your file description here.
void operator()(stochastic_specification &x)
void update(deadlock_summand &x)
void update(stochastic_linear_process &x)
void do_specification(Specification &x)
void update(stochastic_action_summand &x)
stochastic_distribution apply(stochastic_distribution &x)
process::detail::add_capture_avoiding_replacement_with_an_identifier_generator< Builder, Derived, Substitution, IdentifierGenerator > super
void update(action_summand &x)
void operator()(specification &x)
add_capture_avoiding_replacement_with_an_identifier_generator(Substitution &sigma, IdentifierGenerator &id_generator)
void do_action_summand(ActionSummand &x, const data::variable_list &v)
void update(linear_process &x)
void do_linear_process(LinearProcess &x)
void apply(T &result, const process::process_instance_assignment &x)
substitution_updater_with_an_identifier_generator< Substitution, IdentifierGenerator > update_sigma