SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
smtrat-mcsat.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "utils/Bookkeeping.h"
4 #include "utils/ClauseChain.h"
6 
8 
9 namespace smtrat {
10 namespace mcsat {
11 
12 using ModelValues = std::vector<std::pair<carl::Variable, ModelValue>>;
13 using AssignmentOrConflict = std::variant<ModelValues,FormulasT>;
14 using Explanation = std::variant<FormulaT, ClauseChain>;
15 
17  if (std::holds_alternative<FormulaT>(expl)) {
18  return std::get<FormulaT>(expl);
19  } else {
20  return std::get<ClauseChain>(expl).resolve();
21  }
22 }
23 
24 }
25 }
std::vector< std::pair< carl::Variable, ModelValue > > ModelValues
Definition: smtrat-mcsat.h:12
FormulaT resolveExplanation(const Explanation &expl)
Definition: smtrat-mcsat.h:16
std::variant< FormulaT, ClauseChain > Explanation
Definition: smtrat-mcsat.h:14
std::variant< ModelValues, FormulasT > AssignmentOrConflict
Definition: smtrat-mcsat.h:13
Class to create the formulas for axioms.
carl::Formula< Poly > FormulaT
Definition: types.h:37