5 #include <boost/variant.hpp>
23 return os << te.
ss.str();
43 for (std::size_t i = 0; i <
indices.size(); i++) {
62 operator std::string()
const {
68 for (std::size_t i = 1; i <
indices->size(); i++) ss <<
"," << (*
indices)[i];
73 return os << std::string(identifier);
77 struct SExpressionSequence;
79 using SExpression = boost::variant<T, boost::recursive_wrapper<SExpressionSequence<T>>>;
87 return os << std::vector<SExpression<T>>(ses);
std::ostream & operator<<(std::ostream &os, OptimizationType ot)
boost::variant< T, boost::recursive_wrapper< SExpressionSequence< T > >> SExpression
Class to create the formulas for axioms.
Identifier(const std::string &symbol)
Identifier & operator=(const Identifier &i)
std::vector< std::size_t > * indices
Identifier(const Identifier &i)
Identifier(const std::string &symbol, const std::vector< std::size_t > &indices)
Identifier(const std::string &symbol, const std::vector< Integer > &indices)
SExpressionSequence(const std::vector< SExpression< T >> &v)
SExpressionSequence(std::vector< SExpression< T >> &&v)
TheoryError & operator<<(const T &t)
std::string currentTheory
friend std::ostream & operator<<(std::ostream &os, const TheoryError &te)
TheoryError & operator()(const std::string &theory)