Fixes #8805.
The isLegalElimination method correctly catches Int -> Real as an illegal elimination.
}
if (val.getType() != x.getType())
{
- Assert(false) << "isLegalElimination for disequal typed terms " << x
- << " -> " << val;
return false;
}
if (!options().smt.produceModels || options().smt.modelVarElimUneval)
regress0/arith/issue5761-ppr.smt2
regress0/arith/issue8097-iid.smt2
regress0/arith/issue8159-rewrite-intreal.smt2
+ regress0/arith/issue8805-mixed-var-elim.smt2
regress0/arith/ite-lift.smt2
regress0/arith/leq.01.smtv1.smt2
regress0/arith/miplib.cvc.smt2
--- /dev/null
+(set-logic ALL)
+(set-info :status sat)
+(declare-const a Real)
+(declare-const b Int)
+(assert (= (to_real b) (* a a)))
+(check-sat)