summaryrefslogtreecommitdiff
path: root/src/theory/uf/theory_uf.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-09-17 11:40:16 -0500
committerHaniel Barbosa <hanielbbarbosa@gmail.com>2018-09-17 11:40:16 -0500
commit571712dbd11b42ef4586c6adff397bae8ee35397 (patch)
treefa4161db44f6fca4cb36d6b479736dc48d01006a /src/theory/uf/theory_uf.cpp
parentdd92afc3da5ce3c8db63e462b37031860fd0152b (diff)
Decision strategy: incorporate UF with cardinality constraints (#2476)
Diffstat (limited to 'src/theory/uf/theory_uf.cpp')
-rw-r--r--src/theory/uf/theory_uf.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/theory/uf/theory_uf.cpp b/src/theory/uf/theory_uf.cpp
index 653b89d7b..3e9e2354d 100644
--- a/src/theory/uf/theory_uf.cpp
+++ b/src/theory/uf/theory_uf.cpp
@@ -79,8 +79,12 @@ void TheoryUF::finishInit() {
TheoryModel* tm = d_valuation.getModel();
Assert(tm != nullptr);
tm->setUnevaluatedKind(kind::COMBINED_CARDINALITY_CONSTRAINT);
- // initialize the strong solver
- if (options::finiteModelFind() && options::ufssMode()!=UF_SS_NONE) {
+ // Initialize the cardinality constraints solver if the logic includes UF,
+ // finite model finding is enabled, and it is not disabled by
+ // options::ufssMode().
+ if (getLogicInfo().isTheoryEnabled(THEORY_UF) && options::finiteModelFind()
+ && options::ufssMode() != UF_SS_NONE)
+ {
d_thss = new StrongSolverTheoryUF(getSatContext(), getUserContext(), *d_out, this);
}
}
@@ -296,14 +300,6 @@ void TheoryUF::propagate(Effort effort) {
//}
}
-Node TheoryUF::getNextDecisionRequest( unsigned& priority ){
- if (d_thss != NULL && !d_conflict) {
- return d_thss->getNextDecisionRequest( priority );
- }else{
- return Node::null();
- }
-}
-
void TheoryUF::explain(TNode literal, std::vector<TNode>& assumptions, eq::EqProof* pf) {
// Do the work
bool polarity = literal.getKind() != kind::NOT;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback