15#ifndef MCRL2_DATA_BOOL_H
16#define MCRL2_DATA_BOOL_H
91 return atermpp::down_cast<function_symbol>(e) ==
true_();
123 return atermpp::down_cast<function_symbol>(e) ==
false_();
187 return atermpp::down_cast<function_symbol>(e) ==
not_();
249 return atermpp::down_cast<function_symbol>(e) ==
and_();
313 return atermpp::down_cast<function_symbol>(e) ==
or_();
377 return atermpp::down_cast<function_symbol>(e) ==
implies();
472 return atermpp::down_cast<application>(e)[0];
484 return atermpp::down_cast<application>(e)[0];
496 return atermpp::down_cast<application>(e)[1];
Term containing a string.
An application of a data expression to a number of arguments.
The class function symbol.
Exception classes for use in libraries and tools.
atermpp::aterm_string identifier_string
String type of the LPS library. Identifier strings are represented internally as ATerms.
data_equation_vector bool_generate_equations_code()
Give all system defined equations for bool_.
bool is_false_function_symbol(const atermpp::aterm &e)
Recogniser for function false.
const data_expression & arg(const data_expression &e)
Function for projecting out argument. arg from an application.
function_symbol_vector bool_mCRL2_usable_mappings()
Give all system defined mappings that can be used in mCRL2 specs for bool_.
function_symbol_vector bool_mCRL2_usable_constructors()
Give all defined constructors which can be used in mCRL2 specs for bool_.
bool is_or_application(const atermpp::aterm &e)
Recogniser for application of ||.
bool is_bool(const sort_expression &e)
Recogniser for sort expression Bool.
const core::identifier_string & implies_name()
Generate identifier =>.
const basic_sort & bool_()
Constructor for sort expression Bool.
const core::identifier_string & or_name()
Generate identifier ||.
implementation_map bool_cpp_implementable_constructors()
Give all system defined constructors which have an implementation in C++ and not in rewrite rules for...
const function_symbol & implies()
Constructor for function symbol =>.
const data_expression & right(const data_expression &e)
Function for projecting out argument. right from an application.
bool is_not_function_symbol(const atermpp::aterm &e)
Recogniser for function !.
bool is_implies_application(const atermpp::aterm &e)
Recogniser for application of =>.
const function_symbol & and_()
Constructor for function symbol &&.
std::map< function_symbol, std::pair< std::function< void(data_expression &, const data_expression &)>, std::string > > implementation_map
function_symbol_vector bool_generate_constructors_and_functions_code()
Give all system defined mappings and constructors for bool_.
const core::identifier_string & not_name()
Generate identifier !.
function_symbol_vector bool_generate_constructors_code()
Give all system defined constructors for bool_.
implementation_map bool_cpp_implementable_mappings()
Give all system defined mappings that are to be implemented in C++ code for bool_.
const function_symbol & false_()
Constructor for function symbol false.
const core::identifier_string & bool_name()
bool is_and_function_symbol(const atermpp::aterm &e)
Recogniser for function &&.
bool is_and_application(const atermpp::aterm &e)
Recogniser for application of &&.
const function_symbol & or_()
Constructor for function symbol ||.
bool is_or_function_symbol(const atermpp::aterm &e)
Recogniser for function ||.
bool is_true_function_symbol(const atermpp::aterm &e)
Recogniser for function true.
const core::identifier_string & false_name()
Generate identifier false.
const core::identifier_string & true_name()
Generate identifier true.
bool is_not_application(const atermpp::aterm &e)
Recogniser for application of !.
function_symbol_vector bool_generate_functions_code()
Give all system defined mappings for bool_.
const function_symbol & not_()
Constructor for function symbol !.
void make_not_(data_expression &result, const data_expression &arg0)
Make an application of function symbol !.
void make_and_(data_expression &result, const data_expression &arg0, const data_expression &arg1)
Make an application of function symbol &&.
const function_symbol & true_()
Constructor for function symbol true.
bool is_implies_function_symbol(const atermpp::aterm &e)
Recogniser for function =>.
void make_or_(data_expression &result, const data_expression &arg0, const data_expression &arg1)
Make an application of function symbol ||.
void make_implies(data_expression &result, const data_expression &arg0, const data_expression &arg1)
Make an application of function symbol =>.
const data_expression & left(const data_expression &e)
Function for projecting out argument. left from an application.
const core::identifier_string & and_name()
Generate identifier &&.
function_symbol less_equal(const sort_expression &s)
Constructor for function symbol <=.
const data_expression & arg1(const data_expression &e)
Function for projecting out argument. arg1 from an application.
function_symbol less(const sort_expression &s)
Constructor for function symbol <.
std::vector< data_equation > data_equation_vector
\brief vector of data_equations
function_sort make_function_sort_(const sort_expression &dom1, const sort_expression &codomain)
Convenience constructor for function sort with domain size 1.
bool is_function_symbol(const atermpp::aterm &x)
Returns true if the term t is a function symbol.
bool is_basic_sort(const atermpp::aterm &x)
Returns true if the term t is a basic sort.
atermpp::term_list< variable > variable_list
\brief list of variables
function_symbol equal_to(const sort_expression &s)
Constructor for function symbol ==.
bool is_application(const atermpp::aterm &x)
Returns true if the term t is an application.
std::vector< function_symbol > function_symbol_vector
\brief vector of function_symbols
void make_application(atermpp::aterm &result)
Make function for an application.
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Standard functions that are available for all sorts.