Fixes #4290 and fixes #4292.
Node CegInstantiator::applySubstitution( TypeNode tn, Node n, std::vector< Node >& vars, std::vector< Node >& subs, std::vector< TermProperties >& prop,
std::vector< Node >& non_basic, TermProperties& pv_prop, bool try_coeff ) {
+ n = Rewriter::rewrite(n);
computeProgVars( n );
- Assert(n == Rewriter::rewrite(n));
bool is_basic = canApplyBasicSubstitution( n, non_basic );
if( Trace.isOn("cegqi-si-apply-subs-debug") ){
Trace("cegqi-si-apply-subs-debug") << "is_basic = " << is_basic << " " << tn << std::endl;
Node cn_subs =
cn.substitute(vars.begin(), vars.end(), subs.begin(), subs.end());
cn_subs = Rewriter::rewrite(cn_subs);
- Assert(Rewriter::rewrite(n) == n);
+ n = Rewriter::rewrite(n);
return cn_subs == n;
}
regress1/quantifiers/issue3765-quant-dd.smt2
regress1/quantifiers/issue4021-ind-opts.smt2
regress1/quantifiers/issue4062-cegqi-aux.smt2
+ regress1/quantifiers/issue4290-cegqi-r.smt2
regress1/quantifiers/issue993.smt2
regress1/quantifiers/javafe.ast.StmtVec.009.smt2
regress1/quantifiers/lra-vts-inf.smt2
--- /dev/null
+(set-logic AUFLIA)
+(set-info :status unsat)
+(declare-fun _substvar_29_ () (Array Bool Int))
+(declare-fun _substvar_55_ () (Array Bool Int))
+(declare-const arr-8129271443090794560_6381925390096970410-0 (Array Bool Int))
+(assert (not (exists ((q1 Int) (q2 Bool) (q3 (Array Bool Int))) (xor (distinct q1 51) (xor true true true true true true true true (= _substvar_29_ arr-8129271443090794560_6381925390096970410-0 (store _substvar_55_ true 70)) true true) true))))
+(check-sat)