11 #include "../sort/Sort.h"
47 std::
size_t id()
const {
54 const std::string&
name()
const;
59 const std::vector<Sort>&
domain()
const;
66 static_assert(std::is_trivially_copyable<UninterpretedFunction>::value,
"UninterpretedFunction should be trivially copyable.");
67 static_assert(
sizeof(UninterpretedFunction) ==
sizeof(std::size_t),
"UninterpretedFunction should be as large as its id");
74 return lhs.
id() == rhs.
id();
82 return lhs.
id() < rhs.
id();
92 os << ufun.
name() <<
"(";
106 struct hash<
carl::UninterpretedFunction> {
carl is the main namespace for the library.
bool operator<(const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs)
std::ostream & operator<<(std::ostream &os, const BasicConstraint< Poly > &c)
Prints the given constraint on the given stream.
bool operator==(const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs)
auto stream_joined(const std::string &glue, const T &v)
Allows to easily output some container with all elements separated by some string.
std::size_t hash_all(Args &&... args)
Hashes an arbitrary number of values.
Implements a sort (for defining types of variables and functions).
Implements a manager for uninterpreted functions, containing their actual contents and allocating the...
Implements an uninterpreted function.
UninterpretedFunction() noexcept=default
Default constructor.
const std::string & name() const
UninterpretedFunction(std::size_t id)
Constructs an uninterpreted function.
std::size_t mId
A unique id.
const std::vector< Sort > & domain() const
std::size_t operator()(const carl::UninterpretedFunction &uf) const