{
// We are now visiting current on the way back up.
// This is when we do the actual translation.
+ Node translation;
if (currentNumChildren == 0)
{
- Node translation = translateNoChildren(current);
- d_bvToIntCache[current] = translation;
+ translation = translateNoChildren(current);
}
else
{
{
translated_children.push_back(d_bvToIntCache[current[i]]);
}
- Node translation =
- translateWithChildren(current, translated_children);
- d_bvToIntCache[current] = translation;
+ translation = translateWithChildren(current, translated_children);
}
+ // Map the current node to its translation in the cache.
+ d_bvToIntCache[current] = translation;
+ // Also map the translation to itself.
+ d_bvToIntCache[translation] = translation;
toVisit.pop_back();
}
}
regress0/bv/bv_to_int_5230_shift_const.smt2
regress0/bv/bv_to_int_5230_binary.smt2
regress0/bv/bv_to_int_5230_missing_op.smt2
+ regress0/bv/bv_to_int_5281.smt2
regress0/bv/bv_to_int_bvmul2.smt2
regress0/bv/bv_to_int_bvuf_to_intuf.smt2
regress0/bv/bv_to_int_bvuf_to_intuf_sorts.smt2
--- /dev/null
+; COMMAND: --check-models --incremental
+; EXPECT: sat
+(set-logic ALL)
+(set-option :check-models true)
+(set-option :incremental true)
+(set-option :solve-bv-as-int sum)
+(declare-fun uf6 (Bool) Bool)
+(declare-fun uf7 (Bool) Bool)
+(assert (uf7 true))
+(push 1)
+(assert (uf6 (uf7 true)))
+(check-sat)