12#ifndef MCRL2_DATA_ABSTRACTION_H
13#define MCRL2_DATA_ABSTRACTION_H
47 template <
typename Container>
60 return atermpp::down_cast<const binder_type>((*
this)[0]);
65 return atermpp::down_cast<const variable_list>((*
this)[1]);
70 return atermpp::down_cast<const data_expression>((*
this)[2]);
74template <
class... ARGUMENTS>
87std::string
pp(
const abstraction& x);
aterm()
Default constructor.
void swap(unprotected_aterm_core &t) noexcept
Swaps this term with its argument.
An abstraction expression.
const variable_list & variables() const
abstraction(const atermpp::aterm &term)
Constructor.
abstraction(const binder_type &binding_operator, const variable_list &variables, const data_expression &body)
Constructor.
abstraction(const abstraction &) noexcept=default
Move semantics.
abstraction(const binder_type &binding_operator, const Container &variables, const data_expression &body, typename atermpp::enable_if_container< Container, variable >::type *=nullptr)
Constructor.
const data_expression & body() const
abstraction(abstraction &&) noexcept=default
abstraction()
Default constructor.
const binder_type & binding_operator() const
const_iterator end() const
const_iterator begin() const
The class data_expression.
The main namespace for the aterm++ library.
const atermpp::function_symbol & function_symbol_Binder()
bool check_term_Binder(const Term &t)
void swap(abstraction &t1, abstraction &t2)
\brief swap overload
std::string pp(const abstraction &x)
void make_abstraction(atermpp::aterm &result, ARGUMENTS... arguments)
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...