SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
Explanation.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 #include "FMStatistics.h"
6 
7 namespace smtrat {
8 namespace mcsat {
9 namespace fm {
10 
12  static constexpr bool use_all_constraints = false;
13 };
15  static constexpr bool use_all_constraints = true;
16 };
17 
18 template<class Settings>
19 struct Explanation {
20 
21 #ifdef SMTRAT_DEVOPTION_Statistics
22  FMStatistics& mStatistics = statistics_get<FMStatistics>("mcsat-explanation-fm");
23 #endif
24 
25  std::optional<mcsat::Explanation> operator()(const mcsat::Bookkeeping& data, carl::Variable var, const FormulasT& reason, bool force_use_core) const;
26 
27 };
28 
29 }
30 }
31 }
Represent the trail, i.e.
Definition: Bookkeeping.h:19
int var(Lit p)
Definition: SolverTypes.h:64
Class to create the formulas for axioms.
carl::Formulas< Poly > FormulasT
Definition: types.h:39
static constexpr bool use_all_constraints
Definition: Explanation.h:12
std::optional< mcsat::Explanation > operator()(const mcsat::Bookkeeping &data, carl::Variable var, const FormulasT &reason, bool force_use_core) const
Definition: Explanation.cpp:9
static constexpr bool use_all_constraints
Definition: Explanation.h:15