summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/options_handlers.h
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2015-07-25 16:40:54 +0200
committerajreynol <andrew.j.reynolds@gmail.com>2015-07-25 16:40:54 +0200
commitc0079b3110a81f2ff993b7f86782266380dd102e (patch)
treec39d61ecc3857ebe5af75bd41ef7c11353e0824a /src/theory/quantifiers/options_handlers.h
parent7dcb635088e73b508dbe00ae7fe08dae99968416 (diff)
Add option --sygus-inv-templ for synthesizing strengthening/weakening of pre/post conditions. Dump synth by default in sygus, update regressions. Set better defaults for induction. Fix bug in related to IFF and EQUAL in sygus grammar.
Diffstat (limited to 'src/theory/quantifiers/options_handlers.h')
-rw-r--r--src/theory/quantifiers/options_handlers.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/theory/quantifiers/options_handlers.h b/src/theory/quantifiers/options_handlers.h
index c518813a0..4d2276621 100644
--- a/src/theory/quantifiers/options_handlers.h
+++ b/src/theory/quantifiers/options_handlers.h
@@ -217,6 +217,19 @@ none \n\
+ Lift if-then-else in quantified formulas. \n\
\n\
";
+static const std::string sygusInvTemplHelp = "\
+Template modes for sygus invariant synthesis, supported by --sygus-inv-templ:\n\
+\n\
+none \n\
++ Synthesize invariant directly.\n\
+\n\
+pre \n\
++ Synthesize invariant based on weakening of precondition .\n\
+\n\
+post \n\
++ Synthesize invariant based on strengthening of postcondition. \n\
+\n\
+";
inline InstWhenMode stringToInstWhenMode(std::string option, std::string optarg, SmtEngine* smt) throw(OptionException) {
if(optarg == "pre-full") {
@@ -443,6 +456,22 @@ inline IteLiftQuantMode stringToIteLiftQuantMode(std::string option, std::string
}
}
+inline SygusInvTemplMode stringToSygusInvTemplMode(std::string option, std::string optarg, SmtEngine* smt) throw(OptionException) {
+ if(optarg == "none" ) {
+ return SYGUS_INV_TEMPL_MODE_NONE;
+ } else if(optarg == "pre") {
+ return SYGUS_INV_TEMPL_MODE_PRE;
+ } else if(optarg == "post") {
+ return SYGUS_INV_TEMPL_MODE_POST;
+ } else if(optarg == "help") {
+ puts(sygusInvTemplHelp.c_str());
+ exit(1);
+ } else {
+ throw OptionException(std::string("unknown option for --sygus-inv-templ: `") +
+ optarg + "'. Try --sygus-inv-templ help.");
+ }
+}
+
}/* CVC4::theory::quantifiers namespace */
}/* CVC4::theory namespace */
}/* CVC4 namespace */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback