summaryrefslogtreecommitdiff
path: root/src/theory/bv
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-08-31 14:24:27 -0500
committerGitHub <noreply@github.com>2020-08-31 12:24:27 -0700
commit7b3b19f73ceb2168ced48d07a590c0f3be82a8d4 (patch)
treea2ca8f1cae261c87ea659c2d8f36a8090475e88d /src/theory/bv
parent57a02fd0c7faa7a87b8619d52cf519e033633c1d (diff)
Simplify interface for computing relevant terms. (#4966)
This is a followup to #4945 which simplifies the contract for computeRelevantTerms.
Diffstat (limited to 'src/theory/bv')
-rw-r--r--src/theory/bv/bitblast/lazy_bitblaster.cpp3
-rw-r--r--src/theory/bv/bv_subtheory_algebraic.cpp3
-rw-r--r--src/theory/bv/bv_subtheory_core.cpp3
3 files changed, 6 insertions, 3 deletions
diff --git a/src/theory/bv/bitblast/lazy_bitblaster.cpp b/src/theory/bv/bitblast/lazy_bitblaster.cpp
index c3a305952..83e286f10 100644
--- a/src/theory/bv/bitblast/lazy_bitblaster.cpp
+++ b/src/theory/bv/bitblast/lazy_bitblaster.cpp
@@ -540,7 +540,8 @@ Node TLazyBitblaster::getModelFromSatSolver(TNode a, bool fullModel) {
bool TLazyBitblaster::collectModelInfo(TheoryModel* m, bool fullModel)
{
std::set<Node> termSet;
- d_bv->computeRelevantTerms(termSet);
+ const std::set<Kind>& irrKinds = m->getIrrelevantKinds();
+ d_bv->computeAssertedTerms(termSet, irrKinds, true);
for (std::set<Node>::const_iterator it = termSet.begin(); it != termSet.end(); ++it) {
TNode var = *it;
diff --git a/src/theory/bv/bv_subtheory_algebraic.cpp b/src/theory/bv/bv_subtheory_algebraic.cpp
index e5a416a1b..80a6aeb86 100644
--- a/src/theory/bv/bv_subtheory_algebraic.cpp
+++ b/src/theory/bv/bv_subtheory_algebraic.cpp
@@ -715,7 +715,8 @@ bool AlgebraicSolver::collectModelInfo(TheoryModel* model, bool fullModel)
Debug("bitvector-model") << "AlgebraicSolver::collectModelInfo\n";
AlwaysAssert(!d_quickSolver->inConflict());
set<Node> termSet;
- d_bv->computeRelevantTerms(termSet);
+ const std::set<Kind>& irrKinds = model->getIrrelevantKinds();
+ d_bv->computeAssertedTerms(termSet, irrKinds, true);
// collect relevant terms that the bv theory abstracts to variables
// (variables and parametric terms such as select apply_uf)
diff --git a/src/theory/bv/bv_subtheory_core.cpp b/src/theory/bv/bv_subtheory_core.cpp
index d8f376a74..38c5cb482 100644
--- a/src/theory/bv/bv_subtheory_core.cpp
+++ b/src/theory/bv/bv_subtheory_core.cpp
@@ -354,7 +354,8 @@ bool CoreSolver::collectModelInfo(TheoryModel* m, bool fullModel)
}
}
set<Node> termSet;
- d_bv->computeRelevantTerms(termSet);
+ const std::set<Kind>& irrKinds = m->getIrrelevantKinds();
+ d_bv->computeAssertedTerms(termSet, irrKinds, true);
if (!m->assertEqualityEngine(d_equalityEngine, &termSet))
{
return false;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback