summaryrefslogtreecommitdiff
path: root/src/theory/bv
diff options
context:
space:
mode:
authorlianah <lianahady@gmail.com>2014-08-05 14:36:00 -0400
committerMorgan Deters <mdeters@cs.nyu.edu>2014-08-05 14:55:39 -0400
commitcea6844c6acda98d38cdc897c5fa1a78edddc7a2 (patch)
tree060aa6a9a0966db2a8fe614a6c44f3e2e0641e09 /src/theory/bv
parent6e615d3f8c080970ce9b3927f99c98e6eb0d3002 (diff)
fixed bug575 for bv models
Diffstat (limited to 'src/theory/bv')
-rw-r--r--src/theory/bv/bv_subtheory_algebraic.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/theory/bv/bv_subtheory_algebraic.cpp b/src/theory/bv/bv_subtheory_algebraic.cpp
index 4c784ce6f..e8acf268f 100644
--- a/src/theory/bv/bv_subtheory_algebraic.cpp
+++ b/src/theory/bv/bv_subtheory_algebraic.cpp
@@ -388,7 +388,7 @@ bool AlgebraicSolver::quickCheck(std::vector<Node>& facts) {
}
Assert (res == SAT_VALUE_FALSE);
- Assert (d_quickSolver->inConflict());
+ Assert (d_quickSolver->inConflict());
d_isComplete.set(true);
Debug("bv-subtheory-algebraic") << " Unsat.\n";
@@ -654,6 +654,7 @@ bool AlgebraicSolver::useHeuristic() {
void AlgebraicSolver::assertFact(TNode fact) {
d_assertionQueue.push_back(fact);
+ d_isComplete.set(false);
if (!d_isDifficult.get()) {
d_isDifficult.set(hasExpensiveBVOperators(fact));
}
@@ -663,7 +664,7 @@ EqualityStatus AlgebraicSolver::getEqualityStatus(TNode a, TNode b) {
return EQUALITY_UNKNOWN;
}
void AlgebraicSolver::collectModelInfo(TheoryModel* model, bool fullModel) {
- Debug("bv-subtheory-algebraic-models") << "AlgebraicSolver::collectModelInfo\n";
+ Debug("bitvector-model") << "AlgebraicSolver::collectModelInfo\n";
AlwaysAssert (!d_quickSolver->inConflict());
set<Node> termSet;
d_bv->computeRelevantTerms(termSet);
@@ -682,28 +683,28 @@ void AlgebraicSolver::collectModelInfo(TheoryModel* model, bool fullModel) {
}
}
- Debug("bv-subtheory-algebraic-models") << "Substitutions:\n";
+ Debug("bitvector-model") << "Substitutions:\n";
for (unsigned i = 0; i < variables.size(); ++i) {
TNode current = variables[i];
TNode subst = Rewriter::rewrite(d_modelMap->apply(current));
- Debug("bv-subtheory-algebraic-models") << " " << current << " => " << subst << "\n";
+ Debug("bitvector-model") << " " << current << " => " << subst << "\n";
values[i] = subst;
}
- Debug("bv-subtheory-algebraic-models") << "Model:\n";
+ Debug("bitvector-model") << "Model:\n";
for (BVQuickCheck::vars_iterator it = d_quickSolver->beginVars(); it != d_quickSolver->endVars(); ++it) {
TNode var = *it;
Node value = d_quickSolver->getVarValue(var);
- Debug("bv-subtheory-algebraic-models") << " " << var << " => " << value << "\n";
+ Debug("bitvector-model") << " " << var << " => " << value << "\n";
Assert (value.getKind() == kind::CONST_BITVECTOR);
d_modelMap->addSubstitution(var, value);
}
- Debug("bv-subtheory-algebraic-models") << "Final Model:\n";
+ Debug("bitvector-model") << "Final Model:\n";
for (unsigned i = 0; i < variables.size(); ++i) {
TNode current = values[i];
TNode subst = Rewriter::rewrite(d_modelMap->apply(current));
- Debug("bv-subtheory-algebraic-models") << " " << variables[i] << " => " << subst << "\n";
+ Debug("bitvector-model") << " " << variables[i] << " => " << subst << "\n";
// Doesn't have to be constant as it may be irrelevant
// Assert (subst.getKind() == kind::CONST_BITVECTOR);
model->assertEquality(variables[i], subst, true);
@@ -875,7 +876,6 @@ void ExtractSkolemizer::storeExtract(TNode var, unsigned high, unsigned low) {
if (d_varToExtract.find(var) == d_varToExtract.end()) {
d_varToExtract[var] = ExtractList(utils::getSize(var));
}
- // std::cout << "extract " << var <<"["<<high<<":"<<low<<"]\n";
VarExtractMap::iterator it = d_varToExtract.find(var);
ExtractList& el = it->second;
Extract e(high, low);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback