summaryrefslogtreecommitdiff
path: root/src/theory/combination_engine.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-09-26 10:07:42 -0500
committerGitHub <noreply@github.com>2020-09-26 10:07:42 -0500
commit1fe9c2efe36b126c70097b0f83db5654e0abcabe (patch)
tree46323cb7c712618a974092bced6f66dd07be3862 /src/theory/combination_engine.h
parent6ad02b5e0599149e0bd1548855aec8ac890f5a87 (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.h11
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.
*/
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback