return false;
}
}
+
+ // In eager bitblast mode we also have to collect the model values for
+ // Boolean variables in the CNF stream.
+ if (options::bitblastMode() == options::BitblastMode::EAGER)
+ {
+ NodeManager* nm = NodeManager::currentNM();
+ 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/bug440.smtv1.smt2
regress0/bv/bug733.smt2
regress0/bv/bug734.smt2
+ regress0/bv/bv-abstr-bug.smt2
+ regress0/bv/bv-abstr-bug2.smt2
+ regress0/bv/bv-int-collapse1.smt2
+ regress0/bv/bv-int-collapse2.smt2
+ regress0/bv/bv-options4.smt2
+ regress0/bv/bv-to-bool1.smtv1.smt2
+ regress0/bv/bv-to-bool2.smt2
+ regress0/bv/bv2nat-ground-c.smt2
+ regress0/bv/bv2nat-simp-range.smt2
+ regress0/bv/bv_to_int1.smt2
regress0/bv/bv_to_int_5230_binary.smt2
regress0/bv/bv_to_int_5230_missing_op.smt2
regress0/bv/bv_to_int_5230_shift_const.smt2
regress0/bv/bv_to_int_5293_1.smt2
regress0/bv/bv_to_int_5293_2.smt2
regress0/bv/bv_to_int_bvmul2.smt2
- regress0/bv/bv_to_int_bvuf_to_intuf_sorts.smt2
regress0/bv/bv_to_int_bvuf_to_intuf.smt2
+ regress0/bv/bv_to_int_bvuf_to_intuf_sorts.smt2
regress0/bv/bv_to_int_elim_err.smt2
regress0/bv/bv_to_int_zext.smt2
- regress0/bv/bv_to_int1.smt2
- regress0/bv/bv-abstr-bug.smt2
- regress0/bv/bv-abstr-bug2.smt2
- regress0/bv/bv-int-collapse1.smt2
- regress0/bv/bv-int-collapse2.smt2
- regress0/bv/bv-options4.smt2
- regress0/bv/bv-to-bool1.smtv1.smt2
- regress0/bv/bv-to-bool2.smt2
- regress0/bv/bv2nat-ground-c.smt2
- regress0/bv/bv2nat-simp-range.smt2
regress0/bv/bvcomp.cvc
regress0/bv/bvmul-pow2-only.smt2
regress0/bv/bvsimple.cvc
regress0/bv/issue-4076.smt2
regress0/bv/issue-4130.smt2
regress0/bv/issue3621.smt2
+ regress0/bv/issue5396.smt2
regress0/bv/mul-neg-unsat.smt2
regress0/bv/mul-negpow2.smt2
regress0/bv/mult-pow2-negative.smt2
regress0/issue5540-2-dump-model.smt2
regress0/issue5540-model-decls.smt2
regress0/issue5550-num-children.smt2
+ regress0/issue5736.smt2
+ regress0/issue5743.smt2
+ regress0/issue5947.smt2
regress0/issue6605-2-abd-triv.smt2
regress0/ite_arith.smt2
regress0/ite_real_int_type.smtv1.smt2
regress1/bv/incorrect1.smtv1.smt2
regress1/bv/issue3654.smt2
regress1/bv/issue3776.smt2
+ regress1/bv/issue3958.smt2
regress1/bv/min-pp-rewrite-error.smt2
regress1/bv/test-bv-abstraction.smt2
regress1/bv/unsound1.smt2
--- /dev/null
+; COMMAND-LINE: -q --check-unsat-cores --check-models
+(set-info :status sat)
+(declare-fun a () (Array (_ BitVec 32) (_ BitVec 32)))
+(declare-fun b () (Array (_ BitVec 32) (_ BitVec 32)))
+(declare-fun c () (_ BitVec 32))
+(declare-fun d () (_ BitVec 32))
+(declare-fun e () (_ BitVec 32))
+(declare-fun f () (_ BitVec 32))
+(declare-fun g () (Array (_ BitVec 32) (_ BitVec 32)))
+(assert (= (= d e) (= (select a c) f)))
+(assert (= g (store b (bvxor (_ bv4 32) f) (_ bv0 32))))
+(check-sat)