bool EagerBitblaster::collectModelInfo(TheoryModel* m, bool fullModel)
{
+ NodeManager* nm = NodeManager::currentNM();
+
+ // Collect the values for the bit-vector variables
TNodeSet::iterator it = d_variables.begin();
for (; it != d_variables.end(); ++it) {
TNode var = *it;
}
}
}
+
+ // Collect the values for the Boolean variables
+ std::vector<TNode> vars;
+ d_cnfStream->getBooleanVariables(vars);
+ for (TNode var : vars)
+ {
+ Assert(d_cnfStream->hasLiteral(var));
+ prop::SatLiteral bit = d_cnfStream->getLiteral(var);
+ prop::SatValue value = d_satSolver->value(bit);
+ Assert(value != prop::SAT_VALUE_UNKNOWN);
+ if (!m->assertEquality(
+ var, nm->mkConst(value == prop::SAT_VALUE_TRUE), true))
+ {
+ return false;
+ }
+ }
return true;
}
regress0/bv/ackermann2.smt2
regress0/bv/ackermann3.smt2
regress0/bv/ackermann4.smt2
+ regress0/bv/bool-model.smt2
regress0/bv/bool-to-bv-all.smt2
regress0/bv/bool-to-bv-ite.smt2
regress0/bv/bug260a.smt