summaryrefslogtreecommitdiff
path: root/src/theory/ite_simplifier.cpp
diff options
context:
space:
mode:
authorClark Barrett <barrett@cs.nyu.edu>2012-05-28 16:27:50 +0000
committerClark Barrett <barrett@cs.nyu.edu>2012-05-28 16:27:50 +0000
commit5c61887222630583b48bd26fc914d166f122c252 (patch)
tree7d3027303409ad803cb1771195ec7cbd90f9f984 /src/theory/ite_simplifier.cpp
parent21f9e53792ba5f94594fccb7bef880aa77b266cb (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.cpp19
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();
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback