summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-08-06 23:04:21 -0500
committerGitHub <noreply@github.com>2018-08-06 23:04:21 -0500
commit1872a6d20dc7b1d8430bff32d39b020addf74749 (patch)
tree0d4cbd2dae358ceffa81394008d480ee80a7b0f8
parent562ee7da1637353a73884af6c9869cd21554b534 (diff)
Make flat form inferences optional in strings (#2277)
-rw-r--r--src/options/strings_options.toml9
-rw-r--r--src/theory/strings/theory_strings.cpp5
2 files changed, 13 insertions, 1 deletions
diff --git a/src/options/strings_options.toml b/src/options/strings_options.toml
index 66b312737..3498b6183 100644
--- a/src/options/strings_options.toml
+++ b/src/options/strings_options.toml
@@ -208,3 +208,12 @@ header = "options/strings_options.h"
default = "false"
read_only = true
help = "do length propagation based on constant splits"
+
+[[option]]
+ name = "stringFlatForms"
+ category = "regular"
+ long = "strings-ff"
+ type = "bool"
+ default = "true"
+ read_only = true
+ help = "do flat form inferences"
diff --git a/src/theory/strings/theory_strings.cpp b/src/theory/strings/theory_strings.cpp
index 2ce325862..1d853a754 100644
--- a/src/theory/strings/theory_strings.cpp
+++ b/src/theory/strings/theory_strings.cpp
@@ -4915,7 +4915,10 @@ void TheoryStrings::initializeStrategy()
addStrategyStep(CHECK_CONST_EQC);
addStrategyStep(CHECK_EXTF_EVAL, 0);
addStrategyStep(CHECK_CYCLES);
- addStrategyStep(CHECK_FLAT_FORMS);
+ if (options::stringFlatForms())
+ {
+ addStrategyStep(CHECK_FLAT_FORMS);
+ }
addStrategyStep(CHECK_EXTF_REDUCTION, 1);
if (options::stringEager())
{
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback