mCRL2
Loading...
Searching...
No Matches
assignment_sequence_substitution.h
Go to the documentation of this file.
1// Author(s): Wieger Wesselink
2// Copyright: see the accompanying file COPYING or copy at
3// https://github.com/mCRL2org/mCRL2/blob/master/COPYING
4//
5// Distributed under the Boost Software License, Version 1.0.
6// (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
11
12#ifndef MCRL2_DATA_SUBSTITUTIONS_ASSIGNMENT_SEQUENCE_SUBSTITUTION_H
13#define MCRL2_DATA_SUBSTITUTIONS_ASSIGNMENT_SEQUENCE_SUBSTITUTION_H
14
17
18namespace mcrl2 {
19
20namespace data {
21
25{
30
32
34 : assignments(assignments_)
35 {}
36
37 const data_expression& operator()(const variable& v) const
38 {
39 for (const assignment& a: assignments)
40 {
41 if (a.lhs() == v)
42 {
43 return a.rhs();
44 }
45 }
46 return v;
47 }
48};
49
50template <>
51inline
53{
54 for (const assignment& a: sigma.assignments)
55 {
56 if (!is_simple_substitution(a.lhs(), a.rhs()))
57 {
58 return false;
59 }
60 }
61 return true;
62}
63
64} // namespace data
65
66} // namespace mcrl2
67
68#endif // MCRL2_DATA_SUBSTITUTIONS_ASSIGNMENT_SEQUENCE_SUBSTITUTION_H
The class assignment.
\brief Assignment of a data expression to a variable
Definition assignment.h:91
\brief A data variable
Definition variable.h:28
add your file description here.
static RewriterCompilingJitty::substitution_type & sigma(RewriterCompilingJitty *this_rewriter)
bool is_simple_substitution(const Substitution &)
Returns true if the substitution sigma satisfies the property that FV(sigma(x)) is included in {x} fo...
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Definition indexed_set.h:72
Substitution that maps data variables to data expressions. The substitution is stored as an assignmen...
assignment_sequence_substitution(const assignment_list &assignments_)
const data_expression & operator()(const variable &v) const