summaryrefslogtreecommitdiff
path: root/src/theory/ee_manager_distributed.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-09-30 10:06:58 -0500
committerGitHub <noreply@github.com>2020-09-30 10:06:58 -0500
commit7127be18692e2fd32bd2dfce53e50c105ed8a25d (patch)
tree0ac218e0effcebf81629c4d90508a7d8bb4f3182 /src/theory/ee_manager_distributed.cpp
parent0cf0dc3b3661e668f8c03113faad5078d91cea98 (diff)
Dynamic allocation of equality engine for shared solver (#5152)
This updates shared solver to have dynamic allocation of equality engine, analogous to theory solvers.
Diffstat (limited to 'src/theory/ee_manager_distributed.cpp')
-rw-r--r--src/theory/ee_manager_distributed.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/theory/ee_manager_distributed.cpp b/src/theory/ee_manager_distributed.cpp
index 360b1257b..3fb5fc0ce 100644
--- a/src/theory/ee_manager_distributed.cpp
+++ b/src/theory/ee_manager_distributed.cpp
@@ -34,6 +34,18 @@ EqEngineManagerDistributed::~EqEngineManagerDistributed()
void EqEngineManagerDistributed::initializeTheories()
{
context::Context* c = d_te.getSatContext();
+ // initialize the shared solver
+ EeSetupInfo esis;
+ if (d_sharedSolver.needsEqualityEngine(esis))
+ {
+ // allocate an equality engine for the shared terms database
+ d_stbEqualityEngine.reset(allocateEqualityEngine(esis, c));
+ d_sharedSolver.setEqualityEngine(d_stbEqualityEngine.get());
+ }
+ else
+ {
+ Unhandled() << "Expected shared solver to use equality engine";
+ }
// allocate equality engines per theory
for (TheoryId theoryId = theory::THEORY_FIRST;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback