diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-09-26 10:07:42 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-26 10:07:42 -0500 |
commit | 1fe9c2efe36b126c70097b0f83db5654e0abcabe (patch) | |
tree | 46323cb7c712618a974092bced6f66dd07be3862 /src/theory/combination_engine.h | |
parent | 6ad02b5e0599149e0bd1548855aec8ac890f5a87 (diff) |
Connect the shared solver to theory engine (#5103)
This makes SharedSolver the main communication point for TheoryEngine during solving for combination-related solving tasks. This class is a generalization of SharedTermsDatabase, and in the distributed architecture is a wrapper around shared terms database.
It has 5 callbacks in theory engine: for preregistration, preNotifyFact (which calls addSharedTerms on theories), assertSharedEquality, explain, getEqualityStatus.
This PR has no intended behavior changes.
FYI @barrettcw
Diffstat (limited to 'src/theory/combination_engine.h')
-rw-r--r-- | src/theory/combination_engine.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/theory/combination_engine.h b/src/theory/combination_engine.h index 886bdc71d..daafc1f67 100644 --- a/src/theory/combination_engine.h +++ b/src/theory/combination_engine.h @@ -23,6 +23,7 @@ #include "theory/eager_proof_generator.h" #include "theory/ee_manager.h" #include "theory/model_manager.h" +#include "theory/shared_solver.h" namespace CVC4 { @@ -83,6 +84,11 @@ class CombinationEngine TheoryModel* getModel(); //-------------------------- end model /** + * Get the shared solver, which is the active component of theory combination + * that TheoryEngine interacts with prior to calling combineTheories. + */ + SharedSolver* getSharedSolver(); + /** * Called at the beginning of full effort */ virtual void resetRound(); @@ -120,6 +126,11 @@ class CombinationEngine */ std::unique_ptr<ModelManager> d_mmanager; /** + * The shared solver. This class is responsible for performing combination + * tasks (e.g. preregistration) during solving. + */ + std::unique_ptr<SharedSolver> d_sharedSolver; + /** * An eager proof generator, if proofs are enabled. This proof generator is * responsible for proofs of splitting lemmas generated in combineTheories. */ |