12#ifndef MCRL2_DATA_SUBSTITUTIONS_SEQUENCE_SEQUENCE_SUBSTITUTION_H
13#define MCRL2_DATA_SUBSTITUTIONS_SEQUENCE_SEQUENCE_SUBSTITUTION_H
24template <
typename VariableContainer,
typename ExpressionContainer>
48 typename VariableContainer::const_iterator i =
variables.begin();
49 typename ExpressionContainer::const_iterator j =
expressions.begin();
63 std::ostringstream out;
65 typename VariableContainer::const_iterator i =
variables.begin();
66 typename ExpressionContainer::const_iterator j =
expressions.begin();
69 out << (i ==
variables.begin() ?
"" :
"; ") << *i <<
" := " << *j;
77template <
typename VariableContainer,
typename ExpressionContainer>
78sequence_sequence_substitution<VariableContainer, ExpressionContainer>
84template <
typename VariableContainer,
typename ExpressionContainer>
87 return out <<
sigma.to_string();
90template <
typename VariableContainer,
typename ExpressionContainer>
93 auto i =
sigma.variables.begin();
94 auto j =
sigma.expressions.begin();
95 for (i =
sigma.variables.begin(); i !=
sigma.variables.end(); ++i, ++j)
add your file description here.
static RewriterCompilingJitty::substitution_type & sigma(RewriterCompilingJitty *this_rewriter)
sequence_sequence_substitution< VariableContainer, ExpressionContainer > make_sequence_sequence_substitution(const VariableContainer &vc, const ExpressionContainer &ec)
Utility function for creating a sequence_sequence_substitution.
bool is_simple_substitution(const Substitution &)
Returns true if the substitution sigma satisfies the property that FV(sigma(x)) is included in {x} fo...
std::ostream & operator<<(std::ostream &out, const abstraction &x)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Generic substitution function. The substitution is stored as a sequence of variables and a sequence o...
ExpressionContainer::value_type expression_type
type used to represent expressions
std::string to_string() const
expression_type result_type
const ExpressionContainer & expressions
VariableContainer::value_type variable_type
type used to represent variables
const VariableContainer & variables
expression_type operator()(const variable_type &v) const
variable_type argument_type
sequence_sequence_substitution(const VariableContainer &variables_, const ExpressionContainer &expressions_)
add your file description here.