12#ifndef MCRL2_DATA_STANDARD_CONTAINER_UTILITY_H
13#define MCRL2_DATA_STANDARD_CONTAINER_UTILITY_H
34template <
typename Sequence >
37 Sequence
const& range,
41 std::vector< data_expression > elements(range.begin(), range.end());
43 for (std::vector< data_expression >::reverse_iterator i = elements.rbegin(); i != elements.rend(); ++i)
90template <
typename Sequence>
93 Sequence
const& range,
183template <
typename Sequence>
186 Sequence
const& range,
245template <
typename Sequence >
248 Sequence
const& range,
255 for (
typename Sequence::const_reverse_iterator i = range.rbegin(); i != range.rend(); ++i)
260 return static_cast< application >(fset_expression);
317template <
typename Sequence>
320 Sequence
const& range,
329 assert(range.size() % 2 == 0);
334 for (std::size_t i = 0; i < range.size() / 2; ++i)
358 assert(range.
size() % 2 == 0);
362 for (std::size_t i = 0; i < range.
size() / 2; ++i)
396template <
typename Sequence >
407 for (
typename Sequence::const_reverse_iterator i = range.rbegin(); i != range.rend(); ++i, ++i)
412 return static_cast< application >(fbag_expression);
Term containing a string.
size_type size() const
Returns the size of the term_list.
const_iterator end() const
Returns a const_iterator pointing to the end of the term_list.
const_iterator begin() const
Returns a const_iterator pointing to the beginning of the term_list.
bool empty() const
Returns true if the list's size is 0.
An application of a data expression to a number of arguments.
const core::identifier_string & name() const
term_list< Term > sort_list(const term_list< Term > &l, const std::function< bool(const Term &, const Term &)> &ordering=[](const Term &t1, const Term &t2){ return t1< t2;})
Returns the list with the elements sorted according to the <-operator on the addresses of terms.
atermpp::aterm_string identifier_string
String type of the LPS library. Identifier strings are represented internally as ATerms.
bool is_bag_enumeration_application(const atermpp::aterm &e)
Recogniser for application of bag_enumeration.
core::identifier_string const & bag_enumeration_name()
Generate identifier bag_enumeration.
function_symbol bag_enumeration(const sort_expression &s)
Constructor for function symbol bag_enumeration.
bool is_bag_enumeration_function_symbol(const atermpp::aterm &e)
Recogniser for function bag_enumeration.
container_sort fbag(const sort_expression &s)
Constructor for sort expression FBag(S)
function_symbol empty(const sort_expression &s)
Constructor for function symbol {:}.
function_symbol cinsert(const sort_expression &s)
Constructor for function symbol @fbag_cinsert.
function_symbol insert(const sort_expression &s)
Constructor for function symbol @fset_insert.
function_symbol empty(const sort_expression &s)
Constructor for function symbol {}.
container_sort fset(const sort_expression &s)
Constructor for sort expression FSet(S)
bool is_list_enumeration_application(const atermpp::aterm &e)
Recogniser for application of list_enumeration.
function_symbol empty(const sort_expression &s)
Constructor for function symbol [].
function_symbol head(const sort_expression &s)
Constructor for function symbol head.
function_symbol list_enumeration(const sort_expression &s)
Constructor for function symbol list_enumeration.
container_sort list(const sort_expression &s)
Constructor for sort expression List(S)
core::identifier_string const & list_enumeration_name()
Generate identifier list_enumeration.
function_symbol cons_(const sort_expression &s)
Constructor for function symbol |>.
bool is_list_enumeration_function_symbol(const atermpp::aterm &e)
Recogniser for function list_enumeration.
const basic_sort & nat()
Constructor for sort expression Nat.
core::identifier_string const & set_enumeration_name()
Generate identifier set_enumeration.
function_symbol set_enumeration(const sort_expression &s)
Constructor for function symbol set_enumeration.
bool is_set_enumeration_application(const atermpp::aterm &e)
Recogniser for application of set_enumeration.
bool is_set_enumeration_function_symbol(const atermpp::aterm &e)
Recogniser for function set_enumeration.
std::vector< sort_expression > sort_expression_vector
\brief vector of sort_expressions
std::vector< data_expression > data_expression_vector
\brief vector of data_expressions
bool is_function_symbol(const atermpp::aterm &x)
Returns true if the term t is a function symbol.
bool is_application(const atermpp::aterm &x)
Returns true if the term t is an application.
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Generic join and split functions.