Debug("decision") << "---" << std::endl << d_assertions[i] << std::endl;
// Sanity check: if it was false, aren't we inconsistent?
- Assert( tryGetSatValue(d_assertions[i]) != SAT_VALUE_FALSE);
+ // Commenting out. See bug 374. In short, to do with how CNF stream works.
+ // Assert( tryGetSatValue(d_assertions[i]) != SAT_VALUE_FALSE);
SatValue desiredVal = SAT_VALUE_TRUE;
SatLiteral litDecision;
if(litDecision != undefSatLiteral) {
setPrvsIndex(i);
+ Trace("decision") << "jh: spliting on " << litDecision << std::endl;
return litDecision;
}
}
Assert(desiredVal != SAT_VALUE_UNKNOWN, "expected known value");
/* Good luck, hope you can get what you want */
- Assert(litVal == desiredVal || litVal == SAT_VALUE_UNKNOWN,
- "invariant violated");
+ // See bug 374
+ // Assert(litVal == desiredVal || litVal == SAT_VALUE_UNKNOWN,
+ // "invariant violated");
/* What type of node is this */
Kind k = node.getKind();
* If not in theory of booleans, check if this is something to split-on.
*/
if(tId != theory::THEORY_BOOL) {
-
// if node has embedded ites, resolve that first
if(handleEmbeddedITEs(node) == FOUND_SPLITTER)
return FOUND_SPLITTER;
if(litVal != SAT_VALUE_UNKNOWN) {
+ Assert(litVal == desiredVal);
setJustified(node);
return NO_SPLITTER;
}
uflia-xs-09-16-3-4-1-5.delta03.smt \
aufbv-fuzz01.smt \
bug347.smt \
+ bug374a.smt \
+ bug374b.smt2 \
error20.smt \
error20.delta01.smt \
error122.smt \
quant-Arrays_Q1-noinfer.smt2.expect \
wchains010ue.delta02.smt.expect \
bug347.smt.expect \
+ bug374a.smt.expect \
+ bug374b.smt2.expect \
quant-ex1.disable_miniscope.smt2.expect \
wchains010ue.smt.expect \
just_sat.expect \