summaryrefslogtreecommitdiff
path: root/src/theory/uf/theory_uf.cpp
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2011-07-11 03:33:14 +0000
committerMorgan Deters <mdeters@gmail.com>2011-07-11 03:33:14 +0000
commit25e9c72dd689d3b621b901220794c652a3ba589a (patch)
tree58b14dd3818f3e7a8ca3311a0457716e7753a95e /src/theory/uf/theory_uf.cpp
parent587520ce888b88294fb9e4ca476e2425d8bf026e (diff)
merge from symmetry branch
Diffstat (limited to 'src/theory/uf/theory_uf.cpp')
-rw-r--r--src/theory/uf/theory_uf.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/theory/uf/theory_uf.cpp b/src/theory/uf/theory_uf.cpp
index 9903acc57..0776ecf0d 100644
--- a/src/theory/uf/theory_uf.cpp
+++ b/src/theory/uf/theory_uf.cpp
@@ -227,6 +227,22 @@ void TheoryUF::explain(TNode literal) {
d_out->explanation(mkAnd(assumptions));
}
+void TheoryUF::presolve() {
+ // TimerStat::CodeTimer codeTimer(d_presolveTimer);
+
+ Debug("uf") << "uf: begin presolve()" << endl;
+ if(Options::current()->ufSymmetryBreaker) {
+ vector<Node> newClauses;
+ d_symb.apply(newClauses);
+ for(vector<Node>::const_iterator i = newClauses.begin();
+ i != newClauses.end();
+ ++i) {
+ d_out->lemma(*i);
+ }
+ }
+ Debug("uf") << "uf: end presolve()" << endl;
+}
+
void TheoryUF::staticLearning(TNode n, NodeBuilder<>& learned) {
//TimerStat::CodeTimer codeTimer(d_staticLearningTimer);
@@ -334,4 +350,8 @@ void TheoryUF::staticLearning(TNode n, NodeBuilder<>& learned) {
}
}
}
+
+ if(Options::current()->ufSymmetryBreaker) {
+ d_symb.assertFormula(n);
+ }
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback