Skip to content

Commit

Permalink
Improve evaluator for bvsize (cvc5#10575)
Browse files Browse the repository at this point in the history
Taken from proof-new, required for reconstruction of BV rewrites.
  • Loading branch information
ajreynol authored Apr 29, 2024
1 parent 257ba88 commit e1190ea
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/theory/evaluator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -309,11 +309,14 @@ EvalResult Evaluator::evalInternal(
needsReconstruct = false;
Trace("evaluator") << "Evaluator: now after substitution + rewriting: "
<< currNodeVal << std::endl;
if (currNodeVal.getNumChildren() > 0)
if (currNodeVal.getNumChildren() > 0
&& currNodeVal.getKind() != Kind::BITVECTOR_SIZE)
{
// We may continue with a valid EvalResult at this point only if
// we have no children. We must otherwise fail here since some of
// our children may not have successful evaluations.
// bvsize is a rare exception to this, where the evaluation does
// not depend on the value of the argument.
results[currNode] = EvalResult();
evalAsNode[currNode] = currNodeVal;
continue;
Expand Down

0 comments on commit e1190ea

Please sign in to comment.