From 1872a6d20dc7b1d8430bff32d39b020addf74749 Mon Sep 17 00:00:00 2001 From: Andrew Reynolds Date: Mon, 6 Aug 2018 23:04:21 -0500 Subject: [PATCH] Make flat form inferences optional in strings (#2277) --- src/options/strings_options.toml | 9 +++++++++ src/theory/strings/theory_strings.cpp | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) 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()) { -- 2.30.2