12#ifndef MCRL2_DATA_DATA_EXPRESSION_H
13#define MCRL2_DATA_DATA_EXPRESSION_H
135 :
atermpp::
aterm(core::detail::default_values::DataExpr)
253template <
typename Container >
289#ifndef MCRL2_DATA_APPLICATION_H
313 return atermpp::down_cast<data_expression_list>(
static_cast<const atermpp::aterm&
>(l));
371 const hash<atermpp::aterm> hasher;
aterm()
Default constructor.
const function_symbol & function() const
Returns the function symbol belonging to an aterm.
void swap(unprotected_aterm_core &t) noexcept
Swaps this term with its argument.
bool type_is_int() const noexcept
Dynamic check whether the term is an aterm_int.
An application of a data expression to a number of arguments.
data_expression(const atermpp::aterm &term)
data_expression()
\brief Default constructor X3.
sort_expression sort() const
Returns the sort of the data expression.
const_iterator end() const
application operator()(const data_expression &e) const
Apply a data expression to a data expression.
data_expression(const data_expression &) noexcept=default
Move semantics.
data_expression(data_expression &&) noexcept=default
const_iterator begin() const
bool is_default_data_expression() const
A function to efficiently determine whether a data expression is made by the default constructor.
The class container_sort.
The main namespace for the aterm++ library.
bool check_rule_DataExpr(const Term &t)
bool gsIsDataAppl(const atermpp::aterm &Term)
bool gsIsDataAppl_no_check(const atermpp::aterm &Term)
void make_data_expression(data_expression &result)
variable_list free_variables(const data_expression &x)
bool is_data_expression(const atermpp::aterm &x)
Test for a data_expression expression.
void swap(abstraction &t1, abstraction &t2)
\brief swap overload
bool is_application_no_check(const atermpp::aterm &x)
Returns true if the term t is an application, but it does not check whether an application symbol of ...
data_expression_list make_data_expression_list(Container const &r, typename atermpp::enable_if_container< Container, data_expression >::type *=nullptr)
Converts an container with data expressions to data_expression_list.
data::data_equation translate_user_notation(const data::data_equation &x)
std::set< data::variable > find_all_variables(const data::data_expression &x)
bool is_where_clause(const atermpp::aterm &x)
Returns true if the term t is a where clause.
bool is_abstraction(const atermpp::aterm &x)
Returns true if the term t is an abstraction.
bool is_untyped_identifier(const atermpp::aterm &x)
Returns true if the term t is an identifier.
std::vector< data_expression > data_expression_vector
\brief vector of data_expressions
std::string pp(const abstraction &x)
bool is_forall(const atermpp::aterm &x)
Returns true if the term t is a universal quantification.
bool is_function_symbol(const atermpp::aterm &x)
Returns true if the term t is a function symbol.
atermpp::term_list< data_expression > data_expression_list
\brief list of data_expressions
std::set< data::sort_expression > find_sort_expressions(const data::data_equation &x)
std::set< data::variable > find_free_variables(const data::data_expression &x)
bool is_untyped_set_or_bag_comprehension(const atermpp::aterm &x)
Returns true if the term t is a set/bag comprehension.
atermpp::term_list< variable > variable_list
\brief list of variables
bool is_exists(const atermpp::aterm &x)
Returns true if the term t is an existential quantification.
bool is_bag_comprehension(const atermpp::aterm &x)
Returns true if the term t is a bag comprehension.
bool is_set_comprehension(const atermpp::aterm &x)
Returns true if the term t is a set comprehension.
bool is_machine_number(const atermpp::aterm &x)
Returns true if the term t is a machine_number.
const data_expression_list & variable_list_to_data_expression_list(const variable_list &l)
Transform a variable_list into a data_expression_list.
bool is_lambda(const atermpp::aterm &x)
Returns true if the term t is a lambda abstraction.
bool is_constant(const data_expression &x)
bool search_variable(const data::data_expression &x, const data::variable &v)
bool is_application(const atermpp::aterm &x)
Returns true if the term t is an application.
bool is_variable(const atermpp::aterm &x)
Returns true if the term t is a variable.
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...
static const atermpp::aterm DataExpr
static const atermpp::function_symbol Lambda
static const atermpp::function_symbol BagComp
static const atermpp::function_symbol Forall
static const atermpp::function_symbol Whr
static const atermpp::function_symbol Exists
static const atermpp::function_symbol OpId
static const atermpp::function_symbol SetComp
static const atermpp::function_symbol Binder
static const atermpp::function_symbol DataVarId
static const atermpp::function_symbol UntypedIdentifier
static const atermpp::function_symbol UntypedSetBagComp
std::size_t operator()(const mcrl2::data::data_expression &v) const
add your file description here.