From 45e489e2d48e3edde15be2187e32893fc35d859b Mon Sep 17 00:00:00 2001 From: Andrew Reynolds Date: Mon, 6 Apr 2020 16:44:01 -0500 Subject: Remove links field in all toml files (#4201) This includes: All options pertaining to SMTEngine are now handled at the top of setDefaults. smtlibStrict was deleted in favor of a script. statsEveryQuery enables stats by modifying a public option function. This is a slight hack but this code will likely get refactored as well soon. A few other changes: Fix a bug in SMTEngine: defineFunction should finalize options. Call setDefaults before initilizing the TheoryEngine and ProofManager. This is necessary so that the PROOF(...) macro works earlier during initialization. The next step will be to remove the links infrastructure for the options infrastructure. This will enable further detangling of our options dependencies. --- src/smt/set_defaults.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'src/smt/set_defaults.cpp') diff --git a/src/smt/set_defaults.cpp b/src/smt/set_defaults.cpp index e0493b180..fd98064e3 100644 --- a/src/smt/set_defaults.cpp +++ b/src/smt/set_defaults.cpp @@ -45,6 +45,49 @@ namespace smt { void setDefaults(SmtEngine& smte, LogicInfo& logic) { + // implied options + if (options::checkModels() || options::dumpModels()) + { + Notice() << "SmtEngine: setting produceModels" << std::endl; + options::produceModels.set(true); + } + if (options::checkModels()) + { + Notice() << "SmtEngine: setting produceAssignments" << std::endl; + options::produceAssignments.set(true); + } + if (options::dumpUnsatCoresFull()) + { + Notice() << "SmtEngine: setting dumpUnsatCores" << std::endl; + options::dumpUnsatCores.set(true); + } + if (options::checkUnsatCores() || options::dumpUnsatCores() + || options::unsatAssumptions()) + { + Notice() << "SmtEngine: setting unsatCores" << std::endl; + options::unsatCores.set(true); + } + if (options::checkProofs() || options::dumpProofs()) + { + Notice() << "SmtEngine: setting proof" << std::endl; + options::proof.set(true); + } + if (options::bitvectorAigSimplifications.wasSetByUser()) + { + Notice() << "SmtEngine: setting bitvectorAig" << std::endl; + options::bitvectorAig.set(true); + } + if (options::bitvectorEqualitySlicer.wasSetByUser()) + { + Notice() << "SmtEngine: setting bitvectorEqualitySolver" << std::endl; + options::bitvectorEqualitySolver.set(true); + } + if (options::bitvectorAlgebraicBudget.wasSetByUser()) + { + Notice() << "SmtEngine: setting bitvectorAlgebraicSolver" << std::endl; + options::bitvectorAlgebraicSolver.set(true); + } + // Language-based defaults if (!options::bitvectorDivByZeroConst.wasSetByUser()) { -- cgit v1.2.3