summaryrefslogtreecommitdiff
path: root/src/theory/strings/skolem_cache.cpp
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2018-11-29 13:21:31 -0800
committerAndres Noetzli <andres.noetzli@gmail.com>2018-11-29 13:21:31 -0800
commit78e698f44d426d51e5139d2e6724b07203ef5914 (patch)
tree5c5ff51c9c2a2f3715a91118104a7baa32198093 /src/theory/strings/skolem_cache.cpp
parent362201ae4b3d7ba0c035ff4ac698c555023b76b3 (diff)
Diffstat (limited to 'src/theory/strings/skolem_cache.cpp')
-rw-r--r--src/theory/strings/skolem_cache.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/theory/strings/skolem_cache.cpp b/src/theory/strings/skolem_cache.cpp
index ebd6875eb..1e1b8cc72 100644
--- a/src/theory/strings/skolem_cache.cpp
+++ b/src/theory/strings/skolem_cache.cpp
@@ -94,6 +94,12 @@ SkolemCache::normalizeStringSkolem(SkolemId id, Node a, Node b)
NodeManager* nm = NodeManager::currentNM();
+ if (id == SK_FIRST_CTN_POST) {
+ id = SK_SUFFIX_REM;
+ Node pre = mkSkolemCached(a, b, SK_FIRST_CTN_PRE, "pre");
+ b = Rewriter::rewrite(nm->mkNode(PLUS, nm->mkNode(STRING_LENGTH, pre), nm->mkNode(STRING_LENGTH, b)));
+ }
+
if (id == SK_PURIFY && a.getKind() == kind::STRING_SUBSTR)
{
Node s = a[0];
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback