summaryrefslogtreecommitdiff
path: root/src/smt/solver_engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/smt/solver_engine.cpp')
-rw-r--r--src/smt/solver_engine.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/smt/solver_engine.cpp b/src/smt/solver_engine.cpp
index 2cf4862a9..32838eccf 100644
--- a/src/smt/solver_engine.cpp
+++ b/src/smt/solver_engine.cpp
@@ -1193,6 +1193,8 @@ std::vector<Node> SolverEngine::getAssertionsInternal()
return res;
}
+const Options& SolverEngine::options() const { return d_env->getOptions(); }
+
std::vector<Node> SolverEngine::getExpandedAssertions()
{
std::vector<Node> easserts = getAssertions();
@@ -1270,7 +1272,7 @@ UnsatCore SolverEngine::getUnsatCoreInternal()
Assert(pe != nullptr);
std::shared_ptr<ProofNode> pepf;
- if (options::unsatCoresMode() == options::UnsatCoresMode::ASSUMPTIONS)
+ if (options().smt.unsatCoresMode == options::UnsatCoresMode::ASSUMPTIONS)
{
pepf = pe->getRefutation();
}
@@ -1282,7 +1284,7 @@ UnsatCore SolverEngine::getUnsatCoreInternal()
std::shared_ptr<ProofNode> pfn = d_pfManager->getFinalProof(pepf, *d_asserts);
std::vector<Node> core;
d_ucManager->getUnsatCore(pfn, *d_asserts, core);
- if (options::minimalUnsatCores())
+ if (options().smt.minimalUnsatCores)
{
core = reduceUnsatCore(core);
}
@@ -1291,7 +1293,7 @@ UnsatCore SolverEngine::getUnsatCoreInternal()
std::vector<Node> SolverEngine::reduceUnsatCore(const std::vector<Node>& core)
{
- Assert(options::unsatCores())
+ Assert(options().smt.unsatCores)
<< "cannot reduce unsat core if unsat cores are turned off";
d_env->verbose(1) << "SolverEngine::reduceUnsatCore(): reducing unsat core"
@@ -1386,7 +1388,7 @@ void SolverEngine::checkUnsatCore()
theory::TrustSubstitutionMap& tls = d_env->getTopLevelSubstitutions();
for (UnsatCore::iterator i = core.begin(); i != core.end(); ++i)
{
- Node assertionAfterExpansion = tls.apply(*i, false);
+ Node assertionAfterExpansion = tls.apply(*i);
d_env->verbose(1) << "SolverEngine::checkUnsatCore(): pushing core member "
<< *i << ", expanded to " << assertionAfterExpansion
<< std::endl;
@@ -1432,7 +1434,7 @@ void SolverEngine::checkModel(bool hardFailure)
Assert(m != nullptr);
// check the model with the theory engine for debugging
- if (options::debugCheckModels())
+ if (options().smt.debugCheckModels)
{
TheoryEngine* te = getTheoryEngine();
Assert(te != nullptr);
@@ -1527,8 +1529,8 @@ void SolverEngine::printInstantiations(std::ostream& out)
&& getSmtMode() == SmtMode::UNSAT)
{
// minimize instantiations based on proof manager
- getRelevantInstantiationTermVectors(rinsts,
- options::dumpInstantiationsDebug());
+ getRelevantInstantiationTermVectors(
+ rinsts, options().driver.dumpInstantiationsDebug);
}
else
{
@@ -1601,6 +1603,13 @@ bool SolverEngine::getSynthSolutions(std::map<Node, Node>& solMap)
return d_sygusSolver->getSynthSolutions(solMap);
}
+bool SolverEngine::getSubsolverSynthSolutions(std::map<Node, Node>& solMap)
+{
+ SolverEngineScope smts(this);
+ finishInit();
+ return d_sygusSolver->getSubsolverSynthSolutions(solMap);
+}
+
Node SolverEngine::getQuantifierElimination(Node q, bool doFull, bool strict)
{
SolverEngineScope smts(this);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback