summaryrefslogtreecommitdiff
path: root/src/theory/arrays/skolem_cache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/arrays/skolem_cache.cpp')
-rw-r--r--src/theory/arrays/skolem_cache.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/theory/arrays/skolem_cache.cpp b/src/theory/arrays/skolem_cache.cpp
index 19ab1aaae..7cf192b7f 100644
--- a/src/theory/arrays/skolem_cache.cpp
+++ b/src/theory/arrays/skolem_cache.cpp
@@ -35,6 +35,14 @@ struct ExtIndexVarAttributeId
};
typedef expr::Attribute<ExtIndexVarAttributeId, Node> ExtIndexVarAttribute;
+/**
+ * A bound variable corresponding to the index used in the eqrange expansion.
+ */
+struct EqRangeVarAttributeId
+{
+};
+typedef expr::Attribute<EqRangeVarAttributeId, Node> EqRangeVarAttribute;
+
SkolemCache::SkolemCache() {}
Node SkolemCache::getExtIndexSkolem(Node deq)
@@ -66,6 +74,13 @@ Node SkolemCache::getExtIndexSkolem(Node deq)
"an extensional lemma index variable from the theory of arrays");
}
+Node SkolemCache::getEqRangeVar(TNode eqr)
+{
+ Assert(eqr.getKind() == kind::EQ_RANGE);
+ BoundVarManager* bvm = NodeManager::currentNM()->getBoundVarManager();
+ return bvm->mkBoundVar<EqRangeVarAttribute>(eqr, eqr[2].getType());
+}
+
Node SkolemCache::getExtIndexVar(Node deq)
{
Node a = deq[0][0];
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback