diff options
author | Clark Barrett <barrett@cs.nyu.edu> | 2012-05-28 16:27:50 +0000 |
---|---|---|
committer | Clark Barrett <barrett@cs.nyu.edu> | 2012-05-28 16:27:50 +0000 |
commit | 5c61887222630583b48bd26fc914d166f122c252 (patch) | |
tree | 7d3027303409ad803cb1771195ec7cbd90f9f984 /src/theory/ite_simplifier.cpp | |
parent | 21f9e53792ba5f94594fccb7bef880aa77b266cb (diff) |
Added some BV rewrites, fixed bugs in array theory, made ite simp work with BV
Diffstat (limited to 'src/theory/ite_simplifier.cpp')
-rw-r--r-- | src/theory/ite_simplifier.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/theory/ite_simplifier.cpp b/src/theory/ite_simplifier.cpp index 50881af82..7d2b6e333 100644 --- a/src/theory/ite_simplifier.cpp +++ b/src/theory/ite_simplifier.cpp @@ -144,19 +144,16 @@ Node ITESimplifier::simpConstants(TNode simpContext, TNode iteNode, TNode simpVa Node ITESimplifier::getSimpVar(TypeNode t) { - if (t.isInteger()) { - if (d_simpVarInt.isNull()) { - d_simpVarInt = NodeManager::currentNM()->mkVar(t); - } - return d_simpVarInt; + std::hash_map<TypeNode, Node, TypeNode::HashFunction>::iterator it; + it = d_simpVars.find(t); + if (it != d_simpVars.end()) { + return (*it).second; } - if (t.isReal()) { - if (d_simpVarReal.isNull()) { - d_simpVarReal = NodeManager::currentNM()->mkVar(t); - } - return d_simpVarReal; + else { + Node var = NodeManager::currentNM()->mkVar(t); + d_simpVars[t] = var; + return var; } - return Node(); } |