summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2019-09-26 20:33:58 -0700
committerAndres Noetzli <andres.noetzli@gmail.com>2019-09-26 20:33:58 -0700
commit32362253105785e7939f36e713c57ac5af6ce18f (patch)
treedb987799f72f23052032a117b545f8d6fbe1fc1f
parent58c8013de5dc583b8e1321bfadf94ad995eb7b89 (diff)
fix
-rw-r--r--src/theory/strings/theory_strings_rewriter.cpp37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/theory/strings/theory_strings_rewriter.cpp b/src/theory/strings/theory_strings_rewriter.cpp
index 90ed6b3e8..fa3addf1f 100644
--- a/src/theory/strings/theory_strings_rewriter.cpp
+++ b/src/theory/strings/theory_strings_rewriter.cpp
@@ -622,19 +622,19 @@ Node TheoryStringsRewriter::rewriteStrEqualityExt(Node node)
// that two prefixes have the same length, we can split an equality into
// two equalities, one over the prefixes and another over the suffixes.
std::vector<Node> v0, v1;
- getConcat(node[0], v0);
- getConcat(node[1], v1);
+ utils::getConcat(node[0], v0);
+ utils::getConcat(node[1], v1);
size_t startRhs = 0;
for (size_t i = 0, size0 = v0.size(); i <= size0; i++)
{
std::vector<Node> pfxv0(v0.begin(), v0.begin() + i);
- Node pfx0 = mkConcat(STRING_CONCAT, pfxv0);
+ Node pfx0 = utils::mkConcat(STRING_CONCAT, pfxv0);
for (size_t j = startRhs, size1 = v1.size(); j <= size1; j++)
{
if (!(i == 0 && j == 0) && !(i == v0.size() && j == v1.size()))
{
std::vector<Node> pfxv1(v1.begin(), v1.begin() + j);
- Node pfx1 = mkConcat(STRING_CONCAT, pfxv1);
+ Node pfx1 = utils::mkConcat(STRING_CONCAT, pfxv1);
Node lenPfx0 = nm->mkNode(STRING_LENGTH, pfx0);
Node lenPfx1 = nm->mkNode(STRING_LENGTH, pfx1);
@@ -642,10 +642,11 @@ Node TheoryStringsRewriter::rewriteStrEqualityExt(Node node)
{
std::vector<Node> sfxv0(v0.begin() + i, v0.end());
std::vector<Node> sfxv1(v1.begin() + j, v1.end());
- Node ret = nm->mkNode(kind::AND,
- pfx0.eqNode(pfx1),
- mkConcat(STRING_CONCAT, sfxv0)
- .eqNode(mkConcat(STRING_CONCAT, sfxv1)));
+ Node ret =
+ nm->mkNode(kind::AND,
+ pfx0.eqNode(pfx1),
+ utils::mkConcat(STRING_CONCAT, sfxv0)
+ .eqNode(utils::mkConcat(STRING_CONCAT, sfxv1)));
return returnRewrite(node, ret, "split-eq");
}
else if (checkEntailArith(lenPfx1, lenPfx0, true))
@@ -662,11 +663,11 @@ Node TheoryStringsRewriter::rewriteStrEqualityExt(Node node)
{
std::vector<Node> sfxv0(v0.begin() + i, v0.end());
pfxv1.insert(pfxv1.end(), v1.begin() + j, v1.end());
- Node ret =
- nm->mkNode(kind::AND,
- pfx0.eqNode(mkConcat(STRING_CONCAT, rpfxv1)),
- mkConcat(STRING_CONCAT, sfxv0)
- .eqNode(mkConcat(STRING_CONCAT, pfxv1)));
+ Node ret = nm->mkNode(
+ kind::AND,
+ pfx0.eqNode(utils::mkConcat(STRING_CONCAT, rpfxv1)),
+ utils::mkConcat(STRING_CONCAT, sfxv0)
+ .eqNode(utils::mkConcat(STRING_CONCAT, pfxv1)));
return returnRewrite(node, ret, "split-eq-strip-r");
}
@@ -690,11 +691,11 @@ Node TheoryStringsRewriter::rewriteStrEqualityExt(Node node)
{
pfxv0.insert(pfxv0.end(), v0.begin() + i, v0.end());
std::vector<Node> sfxv1(v1.begin() + j, v1.end());
- Node ret =
- nm->mkNode(kind::AND,
- mkConcat(STRING_CONCAT, rpfxv0).eqNode(pfx1),
- mkConcat(STRING_CONCAT, pfxv0)
- .eqNode(mkConcat(STRING_CONCAT, sfxv1)));
+ Node ret = nm->mkNode(
+ kind::AND,
+ utils::mkConcat(STRING_CONCAT, rpfxv0).eqNode(pfx1),
+ utils::mkConcat(STRING_CONCAT, pfxv0)
+ .eqNode(utils::mkConcat(STRING_CONCAT, sfxv1)));
return returnRewrite(node, ret, "split-eq-strip-l");
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback