12 #ifdef SMTRAT_DEVOPTION_Statistics
22 SMTRAT_LOG_TRACE(
"smtrat.mcsat.arithmetic",
"Skipping inactive Constraint " << c);
25 assert(c.type() == carl::FormulaType::CONSTRAINT);
28 conflict.push_back(c);
29 SMTRAT_LOG_DEBUG(
"smtrat.mcsat.arithmetic",
"No Assignment, built conflicting core " << conflict <<
" under model " << data.
model());
33 for (
const auto& b: data.
mvBounds()) {
35 SMTRAT_LOG_TRACE(
"smtrat.mcsat.arithmetic",
"Skipping inactive MVBound " << b);
40 conflict.push_back(b);
41 SMTRAT_LOG_DEBUG(
"smtrat.mcsat.arithmetic",
"No Assignment, built conflicting core " << conflict <<
" under model " << data.
model());
46 #ifdef SMTRAT_DEVOPTION_Statistics
47 mStatistics.success();
53 if(f.type() != carl::FormulaType::VARCOMPARE)
56 const auto& val = f.variable_comparison().value();
57 if (std::holds_alternative<VariableComparisonT::RAN>(val)) {
60 if (data.
model().find(f.variable_comparison().var()) == data.
model().end()) {
63 const auto& mvroot = std::get<MultivariateRootT>(val);
64 auto vars = carl::variables(mvroot.poly()).as_set();
65 vars.erase(mvroot.var());
67 if (*iter == f.variable_comparison().var()) {
72 return vars.size() == 0;
Represent the trail, i.e.
const auto & assignedVariables() const
const auto & constraints() const
const auto & model() const
const auto & mvBounds() const
bool addMVBound(const FormulaT &f)
bool addConstraint(const FormulaT &f)
AssignmentOrConflict findAssignment()
std::variant< ModelValues, FormulasT > AssignmentOrConflict
std::vector< carl::Variable > vars(const std::pair< QuantifierType, std::vector< carl::Variable >> &p)
Class to create the formulas for axioms.
carl::Formula< Poly > FormulaT
carl::Formulas< Poly > FormulasT
#define SMTRAT_LOG_TRACE(channel, msg)
#define SMTRAT_LOG_DEBUG(channel, msg)
bool active(const mcsat::Bookkeeping &data, const FormulaT &f) const
std::optional< AssignmentOrConflict > operator()(const mcsat::Bookkeeping &data, carl::Variable var) const