23 using Super = std::variant<UVariable, UFInstance>;
49 return std::holds_alternative<UVariable>(
mTerm);
56 return std::holds_alternative<UFInstance>(
mTerm);
64 return std::get<UVariable>(
mTerm);
71 return std::get<UFInstance>(
mTerm);
82 void gatherUFs(std::set<UninterpretedFunction>& ufs)
const;
90 bool operator==(
const UTerm& lhs,
const UTerm& rhs);
92 bool operator!=(
const UTerm& lhs,
const UTerm& rhs);
99 bool operator<(
const UTerm& lhs,
const UTerm& rhs);
107 std::ostream&
operator<<(std::ostream& os,
const UTerm& ut);
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.
void visit(const Formula< Pol > &formula, Visitor func)
Recursively calls func on every subformula.
bool operator!=(const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs)
bool operator==(const BasicConstraint< P > &lhs, const BasicConstraint< P > &rhs)
std::size_t hash_all(Args &&... args)
Hashes an arbitrary number of values.
Implements a sort (for defining types of variables and functions).
Implements an uninterpreted function instance.
Implements an uninterpreted term, that is either an uninterpreted variable or an uninterpreted functi...
UTerm()=default
Default constructor.
std::variant< UVariable, UFInstance > Super
void gatherUFs(std::set< UninterpretedFunction > &ufs) const
UFInstance asUFInstance() const
bool isUFInstance() const
const auto & asVariant() const
UTerm(const Super &term)
Constructs an uninterpreted term.
std::size_t complexity() const
UVariable asUVariable() const
void gatherVariables(carlVariables &vars) const
std::size_t operator()(const carl::UTerm &ut) const
Implements an uninterpreted variable.