Go to the documentation of this file.
13 #ifndef CPROVER_UTIL_MATHEMATICAL_TYPES_H
14 #define CPROVER_UTIL_MATHEMATICAL_TYPES_H
67 ID_mathematical_function,
107 return type.
id() == ID_mathematical_function;
134 #endif // CPROVER_UTIL_MATHEMATICAL_TYPES_H
Type with multiple subtypes.
const domaint & domain() const
Unbounded, signed rational numbers.
The type of an expression, extends irept.
bool can_cast_type< mathematical_function_typet >(const typet &type)
Check whether a reference to a typet is a mathematical_function_typet.
Unbounded, signed integers (mathematical integers, not bitvectors)
const type_with_subtypest & to_type_with_subtypes(const typet &type)
const mathematical_function_typet & to_mathematical_function_type(const typet &type)
Cast a typet to a mathematical_function_typet.
bool is_number(const typet &type)
Returns true if the type is a rational, real, integer, natural, complex, unsignedbv,...
Unbounded, signed real numbers.
type_with_subtypest(const irep_idt &_id, const subtypest &_subtypes)
#define PRECONDITION(CONDITION)
typet & codomain()
Return the codomain, i.e., the set of values that the function maps to (the "target").
std::vector< typet > domaint
const irep_idt & id() const
void add_variable(const typet &_type)
Templated functions to cast to specific exprt-derived classes.
mathematical_function_typet(const domaint &_domain, const typet &_codomain)
const typet & codomain() const
Return the codomain, i.e., the set of values that the function maps to (the "target").
A type for mathematical functions (do not confuse with functions/methods in code)
Natural numbers including zero (mathematical integers, not bitvectors)