summaryrefslogtreecommitdiff
path: root/src/theory/arith/nl_model.h
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2020-02-27 00:08:42 -0800
committerGitHub <noreply@github.com>2020-02-27 00:08:42 -0800
commitc2e7c568f5741215ac58cb7fd47952c52876fa0f (patch)
tree1cc745df05031b4d5665e8548f786f0ad1707605 /src/theory/arith/nl_model.h
parent6c687e2d76f16328d5a2d10ab32a582fb18e00f2 (diff)
parent87f3741db6ed41d3a776774bc1b60fd696585391 (diff)
Merge branch 'master' into fixWShadowfixWShadow
Diffstat (limited to 'src/theory/arith/nl_model.h')
-rw-r--r--src/theory/arith/nl_model.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/theory/arith/nl_model.h b/src/theory/arith/nl_model.h
index 354f6f71c..a8746ca2e 100644
--- a/src/theory/arith/nl_model.h
+++ b/src/theory/arith/nl_model.h
@@ -163,6 +163,23 @@ class NlModel
void setUsedApproximate();
/** Did we use an approximation during this check? */
bool usedApproximate() const;
+ /** Set tautology
+ *
+ * This states that formula n is a tautology (satisfied in all models).
+ * We call this on internally generated lemmas. This method computes a
+ * set of literals that are implied by n, that are hence tautological
+ * as well, such as:
+ * l_pi <= real.pi <= u_pi (pi approximations)
+ * sin(x) = -1*sin(-x)
+ * where these literals are internally generated for the purposes
+ * of guiding the models of the linear solver.
+ *
+ * TODO (cvc4-projects #113: would be helpful if we could do this even
+ * more aggressively by ignoring all internally generated literals.
+ *
+ * Tautological literals do not need be checked during checkModel.
+ */
+ void addTautology(Node n);
//------------------------------ end recording model substitutions and bounds
/** print model value, for debugging.
@@ -314,6 +331,8 @@ class NlModel
std::unordered_map<Node, Node, NodeHashFunction> d_check_model_solved;
/** did we use an approximation on this call to last-call effort? */
bool d_used_approx;
+ /** the set of all tautological literals */
+ std::unordered_set<Node, NodeHashFunction> d_tautology;
}; /* class NlModel */
} // namespace arith
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback