Fixes #6807.
Assert(n != node);
Trace("arrays-postrewrite")
<< "Arrays::postRewrite returning " << n << std::endl;
- return RewriteResponse(REWRITE_AGAIN, n);
+ return RewriteResponse(REWRITE_AGAIN_FULL, n);
}
}
break;
if (r != nullptr)
{
result = r->rewrite(result);
+ Assert(r->rewrite(result) == result) << "Non-idempotent rewrite: " << result
+ << " --> " << r->rewrite(result);
}
return result;
regress0/arrays/issue3813-massign-assert.smt2
regress0/arrays/issue3814.smt2
regress0/arrays/issue4927-unsat-cores.smt2
+ regress0/arrays/issue6807-idem-rew.smt2
regress0/arrays/issue7596-define-array-uminus.smt2
regress0/arrays/swap_t1_np_nf_ai_00005_007.cvc.smtv1.smt2
regress0/arrays/x2.smtv1.smt2
--- /dev/null
+(set-logic ALL)
+(set-info :status sat)
+(declare-fun i () Int)
+(declare-fun a () (Array Int Int))
+(declare-fun _3 () (Array Int Int))
+(assert (and (= (select a 1) 0) (= _3 (store (store (store a 2 0) 1 1) 0 (select a 0)))))
+(assert (= 0 (select (store _3 1 (select a 1)) i)))
+(check-sat)