summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/options/strings_options.toml9
-rw-r--r--src/theory/strings/theory_strings_rewriter.cpp10
2 files changed, 19 insertions, 0 deletions
diff --git a/src/options/strings_options.toml b/src/options/strings_options.toml
index 17d68b3b7..f30790469 100644
--- a/src/options/strings_options.toml
+++ b/src/options/strings_options.toml
@@ -252,3 +252,12 @@ header = "options/strings_options.h"
default = "true"
read_only = true
help = "Enable the contains entailment checks in the strings rewriter"
+
+[[option]]
+ name = "stringsRewriterMultisetReasoning"
+ category = "expert"
+ long = "strings-rewriter-multiset-reasoning"
+ type = "bool"
+ default = "true"
+ read_only = true
+ help = "Enable multiset reasoning in the strings rewriter"
diff --git a/src/theory/strings/theory_strings_rewriter.cpp b/src/theory/strings/theory_strings_rewriter.cpp
index f6854b1b4..ac43a2185 100644
--- a/src/theory/strings/theory_strings_rewriter.cpp
+++ b/src/theory/strings/theory_strings_rewriter.cpp
@@ -4413,6 +4413,11 @@ void TheoryStringsRewriter::getArithApproximations(Node a,
bool TheoryStringsRewriter::checkEntailMultisetSubset(Node a, Node b)
{
+ if (!options::stringsRewriterMultisetReasoning())
+ {
+ return false;
+ }
+
NodeManager* nm = NodeManager::currentNM();
std::vector<Node> avec;
@@ -4499,6 +4504,11 @@ bool TheoryStringsRewriter::checkEntailMultisetSubset(Node a, Node b)
Node TheoryStringsRewriter::checkEntailHomogeneousString(Node a)
{
+ if (!options::stringsRewriterMultisetReasoning())
+ {
+ return Node::null();
+ }
+
NodeManager* nm = NodeManager::currentNM();
std::vector<Node> avec;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback