12#ifndef MCRL2_DATA_FUNCTION_SORT_H
13#define MCRL2_DATA_FUNCTION_SORT_H
47 template <
typename Container>
60 return atermpp::down_cast<sort_expression_list>((*
this)[0]);
65 return atermpp::down_cast<sort_expression>((*
this)[1]);
71template <
class... ARGUMENTS>
78std::string
pp(
const function_sort& x);
174 return function_sort({ dom1, dom2, dom3, dom4, dom5 }, codomain);
194 return function_sort({ dom1, dom2, dom3, dom4, dom5, dom6 }, codomain);
const_iterator end() const
Returns a const_iterator pointing past the last argument.
aterm()
Default constructor.
const_iterator begin() const
Returns an iterator pointing to the first argument.
void swap(unprotected_aterm_core &t) noexcept
Swaps this term with its argument.
const sort_expression & codomain() const
function_sort()
\brief Default constructor X3.
function_sort(const sort_expression_list &domain, const sort_expression &codomain)
\brief Constructor Z14.
function_sort(const atermpp::aterm &term)
function_sort(const Container &domain, const sort_expression &codomain, typename atermpp::enable_if_container< Container, sort_expression >::type *=nullptr)
\brief Constructor Z2.
function_sort(function_sort &&) noexcept=default
function_sort(const function_sort &) noexcept=default
Move semantics.
const sort_expression_list & domain() const
The main namespace for the aterm++ library.
void make_term_appl(Term &target, const function_symbol &sym, ForwardIterator begin, ForwardIterator end)
Constructor an aterm in a variable based on a function symbol and an forward iterator providing the a...
bool check_term_SortArrow(const Term &t)
const atermpp::function_symbol & function_symbol_SortArrow()
atermpp::term_list< function_sort > function_sort_list
list of function sorts
void swap(abstraction &t1, abstraction &t2)
\brief swap overload
function_sort make_function_sort_(const sort_expression &dom1, const sort_expression &codomain)
Convenience constructor for function sort with domain size 1.
std::string pp(const abstraction &x)
std::vector< function_sort > function_sort_vector
vector of function sorts
void make_function_sort(atermpp::aterm &t, const ARGUMENTS &... args)
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...
The class sort_expression.