summaryrefslogtreecommitdiff
path: root/src/theory/arrays/array_info.cpp
diff options
context:
space:
mode:
authorClark Barrett <barrett@cs.nyu.edu>2014-10-02 16:28:00 -0700
committerClark Barrett <barrett@cs.nyu.edu>2014-10-02 16:28:51 -0700
commit5f875d967103452b6585d701b13a6ed5a2bf2a51 (patch)
tree806d0b188c86fc24d136ea8379ef448ffa5c4014 /src/theory/arrays/array_info.cpp
parent96bbad88330fd942895dfb65a7947edfe77a85b7 (diff)
Added internal support for constant arrays.
Diffstat (limited to 'src/theory/arrays/array_info.cpp')
-rw-r--r--src/theory/arrays/array_info.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/theory/arrays/array_info.cpp b/src/theory/arrays/array_info.cpp
index dc907ba0b..9b2d3647e 100644
--- a/src/theory/arrays/array_info.cpp
+++ b/src/theory/arrays/array_info.cpp
@@ -181,6 +181,20 @@ void ArrayInfo::setModelRep(const TNode a, const TNode b) {
}
+void ArrayInfo::setConstArr(const TNode a, const TNode constArr) {
+ Assert(a.getType().isArray());
+ Info* temp_info;
+ CNodeInfoMap::iterator it = info_map.find(a);
+ if(it == info_map.end()) {
+ temp_info = new Info(ct, bck);
+ temp_info->constArr = constArr;
+ info_map[a] = temp_info;
+ } else {
+ (*it).second->constArr = constArr;
+ }
+
+}
+
/**
* Returns the information associated with TNode a
*/
@@ -224,6 +238,16 @@ const TNode ArrayInfo::getModelRep(const TNode a) const
return TNode();
}
+const TNode ArrayInfo::getConstArr(const TNode a) const
+{
+ CNodeInfoMap::const_iterator it = info_map.find(a);
+
+ if(it!= info_map.end()) {
+ return (*it).second->constArr;
+ }
+ return TNode();
+}
+
const CTNodeList* ArrayInfo::getIndices(const TNode a) const{
CNodeInfoMap::const_iterator it = info_map.find(a);
if(it!= info_map.end()) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback