summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/term_registry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/quantifiers/term_registry.cpp')
-rw-r--r--src/theory/quantifiers/term_registry.cpp29
1 files changed, 6 insertions, 23 deletions
diff --git a/src/theory/quantifiers/term_registry.cpp b/src/theory/quantifiers/term_registry.cpp
index 4e1aacbac..5b7bd1552 100644
--- a/src/theory/quantifiers/term_registry.cpp
+++ b/src/theory/quantifiers/term_registry.cpp
@@ -29,12 +29,12 @@ namespace quantifiers {
TermRegistry::TermRegistry(QuantifiersState& qs, QuantifiersRegistry& qr)
: d_presolve(qs.getUserContext(), true),
- d_useFmcModel(false),
d_presolveCache(qs.getUserContext()),
d_termEnum(new TermEnumeration),
d_termPools(new TermPools(qs)),
d_termDb(new TermDb(qs, qr)),
- d_sygusTdb(nullptr)
+ d_sygusTdb(nullptr),
+ d_qmodel(nullptr)
{
if (options::sygus() || options::sygusInst())
{
@@ -44,27 +44,12 @@ TermRegistry::TermRegistry(QuantifiersState& qs, QuantifiersRegistry& qr)
Trace("quant-engine-debug") << "Initialize quantifiers engine." << std::endl;
Trace("quant-engine-debug")
<< "Initialize model, mbqi : " << options::mbqiMode() << std::endl;
- // Finite model finding requires specialized ways of building the model.
- // We require constructing the model here, since it is required for
- // initializing the CombinationEngine and the rest of quantifiers engine.
- if ((options::finiteModelFind() || options::fmfBound())
- && (options::mbqiMode() == options::MbqiMode::FMC
- || options::mbqiMode() == options::MbqiMode::TRUST
- || options::fmfBound()))
- {
- d_useFmcModel = true;
- d_qmodel.reset(new quantifiers::fmcheck::FirstOrderModelFmc(
- qs, qr, *this, "FirstOrderModelFmc"));
- }
- else
- {
- d_qmodel.reset(
- new quantifiers::FirstOrderModel(qs, qr, *this, "FirstOrderModel"));
- }
}
-void TermRegistry::finishInit(QuantifiersInferenceManager* qim)
+void TermRegistry::finishInit(FirstOrderModel* fm,
+ QuantifiersInferenceManager* qim)
{
+ d_qmodel = fm;
d_termDb->finishInit(qim);
if (d_sygusTdb.get())
{
@@ -149,9 +134,7 @@ TermEnumeration* TermRegistry::getTermEnumeration() const
TermPools* TermRegistry::getTermPools() const { return d_termPools.get(); }
-FirstOrderModel* TermRegistry::getModel() const { return d_qmodel.get(); }
-
-bool TermRegistry::useFmcModel() const { return d_useFmcModel; }
+FirstOrderModel* TermRegistry::getModel() const { return d_qmodel; }
} // namespace quantifiers
} // namespace theory
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback