diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2018-10-31 16:25:37 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-31 16:25:37 -0500 |
commit | f59097bfc7f89a30b2d857b0b43eb9130e85f45e (patch) | |
tree | d71d10bb69f23c99e607b897a9a691ab49ade9fa /src/options | |
parent | 6a89ff6d106a012442f0ab3b212dc3d26a758da3 (diff) |
Add optimized sygus enumeration (#2677)
Diffstat (limited to 'src/options')
-rw-r--r-- | src/options/options_handler.cpp | 11 | ||||
-rw-r--r-- | src/options/quantifiers_modes.h | 6 | ||||
-rw-r--r-- | src/options/quantifiers_options.toml | 8 |
3 files changed, 21 insertions, 4 deletions
diff --git a/src/options/options_handler.cpp b/src/options/options_handler.cpp index 46663ce7c..e4c0276ea 100644 --- a/src/options/options_handler.cpp +++ b/src/options/options_handler.cpp @@ -530,7 +530,10 @@ none \n\ + Do not use actively-generated sygus enumerators.\n\ \n\ basic \n\ -+ Use basic type enumerator as sygus enumerator.\n\ ++ Use basic type enumerator for actively-generated sygus enumerators.\n\ +\n\ +enum \n\ ++ Use optimized enumerator for actively-generated sygus enumerators.\n\ \n\ var-agnostic \n\ + Use sygus solver to enumerate terms that are agnostic to variables. \n\ @@ -974,7 +977,11 @@ OptionsHandler::stringToSygusActiveGenMode(std::string option, } else if (optarg == "basic") { - return theory::quantifiers::SYGUS_ACTIVE_GEN_BASIC; + return theory::quantifiers::SYGUS_ACTIVE_GEN_ENUM_BASIC; + } + else if (optarg == "enum") + { + return theory::quantifiers::SYGUS_ACTIVE_GEN_ENUM; } else if (optarg == "var-agnostic") { diff --git a/src/options/quantifiers_modes.h b/src/options/quantifiers_modes.h index 42ab7bc06..392393a91 100644 --- a/src/options/quantifiers_modes.h +++ b/src/options/quantifiers_modes.h @@ -266,8 +266,10 @@ enum SygusActiveGenMode { /** do not use actively-generated enumerators */ SYGUS_ACTIVE_GEN_NONE, - /** use basic actively-generated enumerators */ - SYGUS_ACTIVE_GEN_BASIC, + /** use basic enumeration for actively-generated enumerators */ + SYGUS_ACTIVE_GEN_ENUM_BASIC, + /** use optimized enumeration actively-generated enumerators */ + SYGUS_ACTIVE_GEN_ENUM, /** use variable-agnostic enumerators */ SYGUS_ACTIVE_GEN_VAR_AGNOSTIC, }; diff --git a/src/options/quantifiers_options.toml b/src/options/quantifiers_options.toml index 0762622f0..0b28c6a27 100644 --- a/src/options/quantifiers_options.toml +++ b/src/options/quantifiers_options.toml @@ -1051,6 +1051,14 @@ header = "options/quantifiers_options.h" help = "mode for actively-generated sygus enumerators" [[option]] + name = "sygusActiveGenEnumConsts" + category = "regular" + long = "sygus-active-gen-cfactor=N" + type = "unsigned long" + default = "5" + help = "the branching factor for the number of interpreted constants to consider for each size when using --sygus-active-gen=enum" + +[[option]] name = "sygusMinGrammar" category = "regular" long = "sygus-min-grammar" |