4 #include <carl-formula/model/Model.h>
21 template<
typename Solver, MaxSMTStrategy Strategy>
27 template<
typename Solver, MaxSMTStrategy Strategy>
44 SMTRAT_LOG_WARN(
"smtrat.maxsmt",
"Weights are not yet supported by MaxSMT backends.");
63 std::tuple<Answer,Model,ObjectiveValues>
compute() {
66 SMTRAT_LOG_DEBUG(
"smtrat.maxsmt",
"Checking satisfiability of hard clauses -> " << ans);
76 std::map<std::string, Rational> objectives;
86 for (
const auto& p : objectives) results.emplace_back(p);
void add_soft_formula(const FormulaT &formula, Rational weight, const std::string &id)
void remove_soft_formula(const FormulaT &formula)
std::map< FormulaT, std::string > mSoftFormulaIds
std::vector< FormulaT > mSoftFormulas
bool satisfied(const FormulaT &formula, const Model &model)
std::tuple< Answer, Model, ObjectiveValues > compute()
static void remove(V &ts, const T &t)
bool substitute(const FormulaT &constr, const carl::Variable var, const carl::vs::Term< Poly > &term, FormulaT &result)
Class to create the formulas for axioms.
carl::Formula< Poly > FormulaT
std::vector< std::pair< std::variant< Poly, std::string >, Model::mapped_type > > ObjectiveValues
carl::Model< Rational, Poly > Model
Answer
An enum with the possible answers a Module can give.
std::ostream & operator<<(std::ostream &os, CMakeOptionPrinter cmop)
#define SMTRAT_LOG_WARN(channel, msg)
#define SMTRAT_LOG_INFO(channel, msg)
#define SMTRAT_LOG_DEBUG(channel, msg)