Fixes #4086.
Quantifier instantiation involves two symbolic representations of infinities for real and int and was not handled correctly previously.
std::vector<Node> subs_lhs;
subs_lhs.push_back(inf);
std::vector<Node> subs_rhs;
- subs_lhs.push_back(rew_vts_inf);
+ subs_rhs.push_back(rew_vts_inf);
n = n.substitute(subs_lhs.begin(),
subs_lhs.end(),
subs_rhs.begin(),
regress0/quantifiers/issue2033-macro-arith.smt2
regress0/quantifiers/issue2035.smt2
regress0/quantifiers/issue3655.smt2
+ regress0/quantifiers/issue4086-infs.smt2
regress0/quantifiers/lra-triv-gn.smt2
regress0/quantifiers/macros-int-real.smt2
regress0/quantifiers/macros-real-arg.smt2
--- /dev/null
+(set-logic LIRA)
+(set-info :status unsat)
+(set-option :cbqi-use-inf-int true)
+(set-option :cbqi-use-inf-real true)
+(set-option :var-ineq-elim-quant false)
+(assert (forall (( b Real )) (forall (( c Int )) (and (> c (* b 2 ))))))
+(check-sat)