Splinter* s = new Splinter(low -1 , 0);
slice->addSplinter(0, s);
}
- if (high + granularity < size) {
+ if (high != size - 1) {
Splinter* s = new Splinter(size - 1, high + 1);
slice->addSplinter(high+1, s);
}
Kind kind = node.getKind();
if (kind != kind::BITVECTOR_EXTRACT &&
kind != kind::BITVECTOR_CONCAT &&
- kind != kind::EQUAL && kind != kind::NOT) {
+ kind != kind::EQUAL && kind != kind::NOT &&
+ node.getMetaKind() != kind::metakind::VARIABLE &&
+ kind != kind::CONST_BITVECTOR) {
d_coreTermCache[node] = false;
return false;
} else {
d_coreSolver.addAssertions(new_assertions, e);
}
- // FIXME: this is not quite correct as it does not take into account cardinality constraints
-
- //if (d_coreSolver.isCoreTheory()) {
- // paranoid check to make sure results of bit-blaster agree with slicer for core theory
- // if (inConflict()) {
- // d_conflict = false;
- // d_bitblastSolver.addAssertions(new_assertions, Theory::EFFORT_FULL);
- // Assert (inConflict());
- // } else {
- // d_bitblastSolver.addAssertions(new_assertions, Theory::EFFORT_FULL);
- // Assert (!inConflict());
- // }
- //}
- //else {
-
if (!inConflict() && !d_coreSolver.isCoreTheory()) {
// sending assertions to the bitblast solver if it's not just core theory
+ Assert (false);
+ std::cout << "Using bitblaster \n";
d_bitblastSolver.addAssertions(new_assertions, e);
}