mcrl2/data/data_expression.h

Include file:

#include "mcrl2/data/data_expression.h"

The class data_expression.

Typedefs

type data_expression_list

typedef for atermpp::term_list< data_expression >

list of data_expressions

type data_expression_vector

typedef for std::vector< data_expression >

vector of data_expressions

type variable_list

typedef for atermpp::term_list< variable >

list of variables

Functions

std::set<data::variable> find_all_variables(const data::data_expression &x)
std::set<data::variable> find_all_variables(const data::data_expression_list &x)
std::set<data::variable> find_free_variables(const data::data_expression &x)
std::set<data::variable> find_free_variables(const data::data_expression_list &x)
std::set<data::sort_expression> find_sort_expressions(const data::data_expression &x)
variable_list free_variables(const data_expression &x)
bool mcrl2::data::is_abstraction(const atermpp::aterm_appl &x)

Returns true if the term t is an abstraction.

bool mcrl2::data::is_application(const atermpp::aterm_appl &x)

Returns true if the term t is an application.

This function is inefficient as the arity of a term must be determined and an inspection must take place in an array of function symbols. Therefore, there is an more efficient overload is_application(const data_expression& x).

bool mcrl2::data::is_application(const data_expression &t)

Returns true if the term t is an application.

Parameters:

  • t The variable that is checked.
bool mcrl2::data::is_application_no_check(const atermpp::aterm_appl &x)

Returns true if the term t is an application, but it does not check whether an application symbol of sufficient arity exists, assuming this is ok.

bool mcrl2::data::is_bag_comprehension(const atermpp::aterm_appl &x)

Returns true if the term t is a bag comprehension.

bool mcrl2::data::is_constant(const data_expression &x)
bool mcrl2::data::is_data_expression(const atermpp::aterm_appl &x)

Test for a data_expression expression.

Parameters:

  • x A term

Returns: True if it is a data_expression expression

bool mcrl2::data::is_exists(const atermpp::aterm_appl &x)

Returns true if the term t is an existential quantification.

bool mcrl2::data::is_forall(const atermpp::aterm_appl &x)

Returns true if the term t is a universal quantification.

bool mcrl2::data::is_function_symbol(const atermpp::aterm_appl &x)

Returns true if the term t is a function symbol.

bool mcrl2::data::is_lambda(const atermpp::aterm_appl &x)

Returns true if the term t is a lambda abstraction.

bool mcrl2::data::is_set_comprehension(const atermpp::aterm_appl &x)

Returns true if the term t is a set comprehension.

bool mcrl2::data::is_untyped_identifier(const atermpp::aterm_appl &x)

Returns true if the term t is an identifier.

bool mcrl2::data::is_untyped_set_or_bag_comprehension(const atermpp::aterm_appl &x)

Returns true if the term t is a set/bag comprehension.

bool mcrl2::data::is_variable(const atermpp::aterm_appl &x)

Returns true if the term t is a variable.

bool mcrl2::data::is_where_clause(const atermpp::aterm_appl &x)

Returns true if the term t is a where clause.

data_expression_list mcrl2::data::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.

Parameters:

  • r A range of data expressions.

Note

This function uses implementation details of the iterator type and hence is sometimes efficient than copying all elements of the list.

std::ostream &mcrl2::data::operator<<(std::ostream &out, const data_expression &x)

Outputs the object to a stream.

Parameters:

  • out An output stream
  • x Object x

Returns: The output stream

std::string pp(const data_expression &x)
std::string pp(const data_expression_list &x)
std::string pp(const data_expression_vector &x)
bool search_variable(const data::data_expression &x, const data::variable &v)
void mcrl2::data::swap(data_expression &t1, data_expression &t2)

swap overload

data::data_expression translate_user_notation(const data::data_expression &x)
const data_expression_list &mcrl2::data::variable_list_to_data_expression_list(const variable_list &l)

Transform a variable_list into a data_expression_list.