Node AbstractionModule::getSignatureSkolem(TNode node)
{
- Assert(node.getKind() == kind::VARIABLE);
+ Assert(node.getMetaKind() == kind::metakind::VARIABLE);
NodeManager* nm = NodeManager::currentNM();
unsigned bitwidth = utils::getSize(node);
if (d_signatureSkolems.find(bitwidth) == d_signatureSkolems.end())
if (seen.find(node)!= seen.end())
return;
- if (node.getKind() == kind::VARIABLE ||
- node.getKind() == kind::CONST_BITVECTOR) {
+ if (node.getMetaKind() == kind::metakind::VARIABLE
+ || node.getKind() == kind::CONST_BITVECTOR)
+ {
// a constant in the node can either map to an argument of the abstraction
// or can be hard-coded and part of the abstraction
if (signature.getKind() == kind::SKOLEM) {
}
if (signature.getNumChildren() == 0) {
- Assert (signature.getKind() != kind::VARIABLE &&
- signature.getKind() != kind::SKOLEM);
+ Assert(signature.getKind() != kind::metakind::VARIABLE);
seen[signature] = signature;
return signature;
}
d_nullContext(new context::Context()),
d_aigCache(),
d_bbAtoms(),
- d_aigOutputNode(NULL)
+ d_aigOutputNode(NULL),
+ d_notify()
{
prop::SatSolver* solver = nullptr;
switch (options::bvSatSolver())
prop::BVSatSolverInterface* minisat =
prop::SatSolverFactory::createMinisat(
d_nullContext.get(), smtStatisticsRegistry(), "AigBitblaster");
- MinisatEmptyNotify notify;
- minisat->setNotify(¬ify);
+ d_notify.reset(new MinisatEmptyNotify());
+ minisat->setNotify(d_notify.get());
solver = minisat;
break;
}
// the thing we are checking for sat
Abc_Obj_t* d_aigOutputNode;
+ std::unique_ptr<MinisatEmptyNotify> d_notify;
+
void addAtom(TNode atom);
void simplifyAig();
void storeBBAtom(TNode atom, Abc_Obj_t* atom_bb) override;
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-options1.smt2 \
--- /dev/null
+; COMMAND-LINE: --solve-int-as-bv=32 --bitblast=eager
+(set-logic QF_NIA)
+(set-info :status sat)
+(declare-fun _substvar_7_ () Bool)
+(declare-fun _substvar_3_ () Int)
+(assert (or _substvar_7_ (= 0 _substvar_3_)))
+(check-sat)