void DecisionEngine::addAssertions
(const vector<Node> &assertions,
- int assertionsEnd,
+ unsigned assertionsEnd,
IteSkolemMap iteSkolemMap)
{
// new assertions, reset whatever result we knew
* removal. Hence, iteSkolemMap maps into only these.
*/
void addAssertions(const vector<Node> &assertions,
- int assertionsEnd,
+ unsigned assertionsEnd,
IteSkolemMap iteSkolemMap);
/* add a single assertion */
, dec_vars(0), clauses_literals(0), learnts_literals(0), max_literals(0), tot_literals(0)
, only_bcp(false)
+ , clause_added(false)
, ok (true)
, cla_inc (1)
, var_inc (1)
, conflict_budget (-1)
, propagation_budget (-1)
, asynch_interrupt (false)
- , clause_added(false)
{
// Create the constant variables
varTrue = newVar(true, false);
out_btlevel = level(var(p));
}
- if (out_learnt.size() > 0 && clause_all_marker && CVC4::Options::current()->bitvector_share_lemmas) {
+ if (out_learnt.size() > 0 && clause_all_marker && CVC4::Options::current()->bitvectorShareLemmas) {
notify->notify(out_learnt);
}
// begin: INVARIANT to maintain: no reordering of assertions or
// introducing new ones
- int iteRewriteAssertionsEnd = d_assertionsToCheck.size();
+ unsigned iteRewriteAssertionsEnd = d_assertionsToCheck.size();
Trace("smt") << "SmtEnginePrivate::processAssertions() POST SIMPLIFICATION" << endl;
Debug("smt") << " d_assertionsToPreprocess: " << d_assertionsToPreprocess.size() << endl;
// do boolean simplifications if possible
Node rewritten = Rewriter::rewrite(atom_definition);
- if (!Options::current()->bitvector_eager_bitblast) {
+ if (!Options::current()->bitvectorEagerBitblast) {
d_cnfStream->convertAndAssert(rewritten, true, false);
d_bitblastedAtoms.insert(node);
} else {
/// Public methods
void Bitblaster::addAtom(TNode atom) {
- if (!Options::current()->bitvector_eager_bitblast) {
+ if (!Options::current()->bitvectorEagerBitblast) {
d_cnfStream->ensureLiteral(atom);
SatLiteral lit = d_cnfStream->getLiteral(atom);
d_satSolver->addMarkerLiteral(lit);
d_assertions(c),
d_bitblaster(new Bitblaster(c, this) ),
d_alreadyPropagatedSet(c),
- d_statistics(),
d_sharedTermsSet(c),
+ d_statistics(),
d_notify(*this),
d_equalityEngine(d_notify, c, "theory::bv::TheoryBV"),
d_conflict(c, false),
void TheoryBV::preRegisterTerm(TNode node) {
BVDebug("bitvector-preregister") << "TheoryBV::preRegister(" << node << ")" << std::endl;
- if (Options::current()->bitvector_eager_bitblast) {
+ if (Options::current()->bitvectorEagerBitblast) {
// don't use the equality engine in the eager bit-blasting
return;
}
{
BVDebug("bitvector") << "TheoryBV::check(" << e << ")" << std::endl;
- if (Options::current()->bitvector_eager_bitblast) {
+ if (Options::current()->bitvectorEagerBitblast) {
while (!done()) {
Assertion assertion = get();
TNode fact = assertion.assertion;
return;
}
- if (e == EFFORT_FULL || Options::current()->bitvector_eager_fullcheck) {
+ if (e == EFFORT_FULL || Options::current()->bitvectorEagerFullcheck) {
Assert(done() && !d_conflict);
BVDebug("bitvector") << "TheoryBV::check " << e << "\n";
bool ok = d_bitblaster->solve();
void TheoryBV::addSharedTerm(TNode t) {
Debug("bitvector::sharing") << spaces(getSatContext()->getLevel()) << "TheoryBV::addSharedTerm(" << t << ")" << std::endl;
d_sharedTermsSet.insert(t);
- if (!Options::current()->bitvector_eager_bitblast && d_useEqualityEngine) {
+ if (!Options::current()->bitvectorEagerBitblast && d_useEqualityEngine) {
d_equalityEngine.addTriggerTerm(t);
}
}
EqualityStatus TheoryBV::getEqualityStatus(TNode a, TNode b)
{
- if (Options::current()->bitvector_eager_bitblast) {
+ if (Options::current()->bitvectorEagerBitblast) {
return EQUALITY_UNKNOWN;
}
thread_id(-1),
separateOutput(false),
sharingFilterByLength(-1),
- bitvector_eager_bitblast(false),
- bitvector_share_lemmas(false),
- bitvector_eager_fullcheck(false),
+ bitvectorEagerBitblast(false),
+ bitvectorEagerFullcheck(false),
+ bitvectorShareLemmas(false),
sat_refine_conflicts(false)
{
}
}
case BITVECTOR_EAGER_BITBLAST:
{
- bitvector_eager_bitblast = true;
+ bitvectorEagerBitblast = true;
break;
}
case BITVECTOR_EAGER_FULLCHECK:
{
- bitvector_eager_fullcheck = true;
+ bitvectorEagerFullcheck = true;
break;
}
case BITVECTOR_SHARE_LEMMAS:
{
- bitvector_share_lemmas = true;
+ bitvectorShareLemmas = true;
break;
}
case SAT_REFINE_CONFLICTS:
/** Whether to do the ite-simplification pass */
bool doITESimp;
+ /**
+ * Whether the user explicitly requested ite simplification
+ */
+ bool doITESimpSetByUser;
+
/** Whether we're in interactive mode or not */
bool interactive;
*/
bool ufSymmetryBreakerSetByUser;
- /**
- * Whether the user explicitly requested ite simplification
- */
- bool doITESimpSetByUser;
-
/**
* Whether to do the linear diophantine equation solver
* in Arith as described by Griggio JSAT 2012 (on by default).
int sharingFilterByLength;
/** Bitblast eagerly to the main sat solver */
- bool bitvector_eager_bitblast;
+ bool bitvectorEagerBitblast;
/** Fullcheck at each check */
- bool bitvector_eager_fullcheck;
+ bool bitvectorEagerFullcheck;
/** Bitblast eagerly to the main sat solver */
- bool bitvector_share_lemmas;
+ bool bitvectorShareLemmas;
/** Refine conflicts by doing another full check after a conflict */
bool sat_refine_conflicts;