Fix substitution in nl solver (#3638)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 22 Jan 2020 22:09:47 +0000 (16:09 -0600)
committerAhmed Irfan <43099566+ahmed-irfan@users.noreply.github.com>
Wed, 22 Jan 2020 22:09:47 +0000 (14:09 -0800)
* Fix for 3614

* Add regression

* Remove regression

Co-authored-by: Ahmed Irfan <43099566+ahmed-irfan@users.noreply.github.com>
src/theory/arith/nl_model.cpp

index 3274867bb7d6af72037140c0806f7e7f1aaaf478..eff810522c991dbc6c670f4e1389f1d8ad385a52 100644 (file)
@@ -905,8 +905,7 @@ bool NlModel::simpleCheckModelLit(Node lit)
   if (!qvars.empty())
   {
     Assert(qvars.size() == qsubs.size());
-    Node slit =
-        lit.substitute(qvars.begin(), qvars.end(), qsubs.begin(), qsubs.end());
+    Node slit = arithSubstitute(lit, qvars, qsubs);
     slit = Rewriter::rewrite(slit);
     return simpleCheckModelLit(slit);
   }