diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2018-06-02 13:39:20 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-02 13:39:20 -0500 |
commit | a9dccb878cef1bab897e182a6c0365e333191dd5 (patch) | |
tree | 117fa9ba40e46cb499bc2c568122bcc540022c58 /src | |
parent | d440c5f3bea930c4f30d62858b878ab36c676312 (diff) |
Fix corner case of mixed int/real cegqi. (#2046)
Diffstat (limited to 'src')
-rw-r--r-- | src/theory/arith/arith_msum.cpp | 1 | ||||
-rw-r--r-- | src/theory/quantifiers/cegqi/ceg_t_instantiator.cpp | 1 |
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; |