diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2021-09-30 11:48:12 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-30 16:48:12 +0000 |
commit | 4e54aa63e13f551e9c647ce59edd958e1d84ddb1 (patch) | |
tree | 6ac634316622d2d8deb1ecce9fa432e3468fa2a4 /src/theory/combination_engine.cpp | |
parent | 46ad5bddc9bc0e03ea702f29c56c22e917aeb06b (diff) |
Make theory engine modules use Env (#7277)
This updates several core modules of TheoryEngine to use Env and eliminates some getters from TheoryEngine.
Diffstat (limited to 'src/theory/combination_engine.cpp')
-rw-r--r-- | src/theory/combination_engine.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/theory/combination_engine.cpp b/src/theory/combination_engine.cpp index 9352ce95c..dfa6d5da4 100644 --- a/src/theory/combination_engine.cpp +++ b/src/theory/combination_engine.cpp @@ -28,45 +28,44 @@ namespace cvc5 { namespace theory { -CombinationEngine::CombinationEngine(TheoryEngine& te, - Env& env, - const std::vector<Theory*>& paraTheories, - ProofNodeManager* pnm) +CombinationEngine::CombinationEngine(Env& env, + TheoryEngine& te, + const std::vector<Theory*>& paraTheories) : EnvObj(env), d_te(te), d_valuation(&te), - d_pnm(pnm), + d_pnm(env.isTheoryProofProducing() ? env.getProofNodeManager() : nullptr), d_logicInfo(te.getLogicInfo()), d_paraTheories(paraTheories), d_eemanager(nullptr), d_mmanager(nullptr), d_sharedSolver(nullptr), - d_cmbsPg(pnm ? new EagerProofGenerator(pnm, te.getUserContext()) - : nullptr) + d_cmbsPg(d_pnm ? new EagerProofGenerator(d_pnm, env.getUserContext()) + : nullptr) { // create the equality engine, model manager, and shared solver if (options::eeMode() == options::EqEngineMode::DISTRIBUTED) { // use the distributed shared solver - d_sharedSolver.reset(new SharedSolverDistributed(d_te, d_pnm)); + d_sharedSolver.reset(new SharedSolverDistributed(env, d_te)); // make the distributed equality engine manager d_eemanager.reset( - new EqEngineManagerDistributed(d_te, *d_sharedSolver.get())); + new EqEngineManagerDistributed(env, d_te, *d_sharedSolver.get())); // make the distributed model manager d_mmanager.reset( - new ModelManagerDistributed(d_te, d_env, *d_eemanager.get())); + new ModelManagerDistributed(env, d_te, *d_eemanager.get())); } else if (options::eeMode() == options::EqEngineMode::CENTRAL) { // for now, the shared solver is the same in both approaches; use the // distributed one for now - d_sharedSolver.reset(new SharedSolverDistributed(d_te, d_pnm)); + d_sharedSolver.reset(new SharedSolverDistributed(env, d_te)); // make the central equality engine manager d_eemanager.reset( - new EqEngineManagerCentral(d_te, *d_sharedSolver.get(), d_pnm)); + new EqEngineManagerCentral(env, d_te, *d_sharedSolver.get())); // make the distributed model manager d_mmanager.reset( - new ModelManagerDistributed(d_te, d_env, *d_eemanager.get())); + new ModelManagerDistributed(env, d_te, *d_eemanager.get())); } else { |