summaryrefslogtreecommitdiff
path: root/src/api/cvc4cpp.cpp
diff options
context:
space:
mode:
authormakaimann <makaim@stanford.edu>2020-06-04 18:21:37 -0700
committerGitHub <noreply@github.com>2020-06-04 18:21:37 -0700
commita2fc412f22552ae0e8f9c36650d1de2d362638dd (patch)
tree5f66f0f8128a826e6099845191ccbe5efdd0f3c3 /src/api/cvc4cpp.cpp
parent67678d6c8a28e71483d8171311725e9e1a86775c (diff)
Add a method for retrieving base of a constant array through API (#4494)
Diffstat (limited to 'src/api/cvc4cpp.cpp')
-rw-r--r--src/api/cvc4cpp.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/api/cvc4cpp.cpp b/src/api/cvc4cpp.cpp
index 734fcddae..164df0631 100644
--- a/src/api/cvc4cpp.cpp
+++ b/src/api/cvc4cpp.cpp
@@ -213,7 +213,7 @@ const static std::unordered_map<Kind, CVC4::Kind, KindHashFunction> s_kinds{
/* Arrays -------------------------------------------------------------- */
{SELECT, CVC4::Kind::SELECT},
{STORE, CVC4::Kind::STORE},
- {STORE_ALL, CVC4::Kind::STORE_ALL},
+ {CONST_ARRAY, CVC4::Kind::STORE_ALL},
/* Datatypes ----------------------------------------------------------- */
{APPLY_SELECTOR, CVC4::Kind::APPLY_SELECTOR},
{APPLY_CONSTRUCTOR, CVC4::Kind::APPLY_CONSTRUCTOR},
@@ -479,7 +479,7 @@ const static std::unordered_map<CVC4::Kind, Kind, CVC4::kind::KindHashFunction>
/* Arrays ---------------------------------------------------------- */
{CVC4::Kind::SELECT, SELECT},
{CVC4::Kind::STORE, STORE},
- {CVC4::Kind::STORE_ALL, STORE_ALL},
+ {CVC4::Kind::STORE_ALL, CONST_ARRAY},
/* Datatypes ------------------------------------------------------- */
{CVC4::Kind::APPLY_SELECTOR, APPLY_SELECTOR},
{CVC4::Kind::APPLY_CONSTRUCTOR, APPLY_CONSTRUCTOR},
@@ -1492,6 +1492,15 @@ bool Term::isConst() const
return d_expr->isConst();
}
+Term Term::getConstArrayBase() const
+{
+ CVC4_API_CHECK_NOT_NULL;
+ // CONST_ARRAY kind maps to STORE_ALL internal kind
+ CVC4_API_CHECK(d_expr->getKind() == CVC4::Kind::STORE_ALL)
+ << "Expecting a CONST_ARRAY Term when calling getConstArrayBase()";
+ return Term(d_solver, d_expr->getConst<ArrayStoreAll>().getExpr());
+}
+
Term Term::notTerm() const
{
CVC4_API_CHECK_NOT_NULL;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback