summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/term_database.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/quantifiers/term_database.cpp')
-rw-r--r--src/theory/quantifiers/term_database.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/theory/quantifiers/term_database.cpp b/src/theory/quantifiers/term_database.cpp
index c4b10eb6f..989609a76 100644
--- a/src/theory/quantifiers/term_database.cpp
+++ b/src/theory/quantifiers/term_database.cpp
@@ -113,19 +113,26 @@ Node TermDb::getTypeGroundTerm(TypeNode tn, unsigned i) const
}
}
-Node TermDb::getOrMakeTypeGroundTerm(TypeNode tn)
+Node TermDb::getOrMakeTypeGroundTerm(TypeNode tn, bool reqVar)
{
std::map<TypeNode, std::vector<Node> >::const_iterator it =
d_type_map.find(tn);
if (it != d_type_map.end())
{
Assert(!it->second.empty());
- return it->second[0];
- }
- else
- {
- return getOrMakeTypeFreshVariable(tn);
+ if (!reqVar)
+ {
+ return it->second[0];
+ }
+ for (const Node& v : it->second)
+ {
+ if (v.isVar())
+ {
+ return v;
+ }
+ }
}
+ return getOrMakeTypeFreshVariable(tn);
}
Node TermDb::getOrMakeTypeFreshVariable(TypeNode tn)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback