diff options
author | Morgan Deters <mdeters@gmail.com> | 2010-11-19 01:37:55 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2010-11-19 01:37:55 +0000 |
commit | 663a6edef6b65d400e2d97dc9c8276da3d3cb0b1 (patch) | |
tree | 29c7782beaf37ea855b9bc9436d61e94f60c9393 /src/theory/theory_engine.h | |
parent | c21ad20770c41ece116c182d97e0ef824e7b26f4 (diff) |
Merge from ufprop branch, including:
* Theory::staticLearning() for statically adding new T-stuff before
normal preprocessing. UF's staticLearning() does transitivity of
equality/iff, solving the diamonds.
* more aggressive T-propagation for UF
* new KEEP_STATISTIC macro to hide Theories from having to
register/deregister statistics (and also has the advantage of
keeping the statistic type, field name, and the 'tag' used to output
the statistic in the same place---instead of scattered in the theory
definition and constructor initializer list. See documentation for
KEEP_STATISTIC in src/util/stats.h for more of an explanation).
* more statistics for UF
* restart notifications from SAT (through TheoryEngine) via
Theory::notifyRestart()
* StackingMap and UnionFind unit tests
* build fixes/adjustments
* code cleanup; minor other improvements
Diffstat (limited to 'src/theory/theory_engine.h')
-rw-r--r-- | src/theory/theory_engine.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/theory/theory_engine.h b/src/theory/theory_engine.h index 8ee5c91d7..3176b9698 100644 --- a/src/theory/theory_engine.h +++ b/src/theory/theory_engine.h @@ -310,11 +310,22 @@ public: } /** + * Calls staticLearning() on all active theories, accumulating their + * combined contributions in the "learned" builder. + */ + void staticLearning(TNode in, NodeBuilder<>& learned); + + /** * Calls presolve() on all active theories and returns true * if one of the theories discovers a conflict. */ bool presolve(); + /** + * Calls notifyRestart() on all active theories. + */ + void notifyRestart(); + inline const std::vector<TNode>& getPropagatedLiterals() const { return d_theoryOut.d_propagatedLiterals; } @@ -365,9 +376,9 @@ private: public: IntStat d_statConflicts, d_statPropagate, d_statLemma, d_statAugLemma, d_statExplanation; Statistics(): - d_statConflicts("theory::conflicts",0), - d_statPropagate("theory::propagate",0), - d_statLemma("theory::lemma",0), + d_statConflicts("theory::conflicts", 0), + d_statPropagate("theory::propagate", 0), + d_statLemma("theory::lemma", 0), d_statAugLemma("theory::aug_lemma", 0), d_statExplanation("theory::explanation", 0) { |