![]() |
SMT-RAT
24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
|
#include <Explanation.h>
Public Member Functions | |
| std::optional< mcsat::Explanation > | operator() (const mcsat::Bookkeeping &data, carl::Variable var, const FormulasT &reason, bool) const |
| We construct a formula 'E -> I', i.e. More... | |
Definition at line 12 of file Explanation.h.
| std::optional< mcsat::Explanation > smtrat::mcsat::nlsat::Explanation::operator() | ( | const mcsat::Bookkeeping & | data, |
| carl::Variable | var, | ||
| const FormulasT & | reason, | ||
| bool | |||
| ) | const |
We construct a formula 'E -> I', i.e.
'e1 & e2 ... en -> i', called "Explanation", in its clausal form '-e1 v -e2 ... en v i', where e1, e2.. are reason Atoms and CAD cell bound atoms, and i is the implication. It "explains" why the assignment point in data is inconsistent with the reason atoms/constraints and the implication in that it constructs a whole region of assignments points, which the assignment point in data is a part of.
| variableOrdering | Determine the order of variables, e.g. x1, x2, .. x10 |
| data | Represent the assigned variables and their assigned values in different representations. These are a prefix of the variableOrdering, e.g. x1, x2, .. x5 |
| var | The smallest/first variable in the variableOrdering that is not assigned by data, e.g. x6 |
| reason | A collection of atoms that are inconsistent together or imply the implication. These atoms mention only variables x1, x2.. x6 (some atom definitely mentions x6) and possibly x7..x10 if they are irrelevant and "vanish" under the assignment in data, e.g. x1*x7+x6=0 (for x1 := 0) or x6*(x7^2+1)>0 (equiv to x6>0, since x7^2+1 > 0) |
Definition at line 11 of file Explanation.cpp.
