summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-06-02 13:39:20 -0500
committerGitHub <noreply@github.com>2018-06-02 13:39:20 -0500
commita9dccb878cef1bab897e182a6c0365e333191dd5 (patch)
tree117fa9ba40e46cb499bc2c568122bcc540022c58
parentd440c5f3bea930c4f30d62858b878ab36c676312 (diff)
Fix corner case of mixed int/real cegqi. (#2046)
-rw-r--r--src/theory/arith/arith_msum.cpp1
-rw-r--r--src/theory/quantifiers/cegqi/ceg_t_instantiator.cpp1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/theory/arith/arith_msum.cpp b/src/theory/arith/arith_msum.cpp
index 46ee1cad5..c56587901 100644
--- a/src/theory/arith/arith_msum.cpp
+++ b/src/theory/arith/arith_msum.cpp
@@ -148,6 +148,7 @@ Node ArithMSum::mkNode(const std::map<Node, Node>& msum)
int ArithMSum::isolate(
Node v, const std::map<Node, Node>& msum, Node& veq_c, Node& val, Kind k)
{
+ Assert(veq_c.isNull());
std::map<Node, Node>::const_iterator itv = msum.find(v);
if (itv != msum.end())
{
diff --git a/src/theory/quantifiers/cegqi/ceg_t_instantiator.cpp b/src/theory/quantifiers/cegqi/ceg_t_instantiator.cpp
index 203697fd7..0274d45cd 100644
--- a/src/theory/quantifiers/cegqi/ceg_t_instantiator.cpp
+++ b/src/theory/quantifiers/cegqi/ceg_t_instantiator.cpp
@@ -198,6 +198,7 @@ int ArithInstantiator::solve_arith( CegInstantiator * ci, Node pv, Node atom, No
Assert( ci->getOutput()->isEligibleForInstantiation( realPart ) );
//re-isolate
Trace("cegqi-arith-debug") << "Re-isolate..." << std::endl;
+ veq_c = Node::null();
ires = ArithMSum::isolate(pv, msum, veq_c, val, atom.getKind());
Trace("cegqi-arith-debug") << "Isolate for mixed Int/Real : " << veq_c << " * " << pv << " " << atom.getKind() << " " << val << std::endl;
Trace("cegqi-arith-debug") << " real part : " << realPart << std::endl;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback