summaryrefslogtreecommitdiff
path: root/src/theory/shared_solver.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2021-06-04 16:05:43 -0500
committerGitHub <noreply@github.com>2021-06-04 16:05:43 -0500
commit760874731c70e2aa32c3591c67a08f3ea85dcafd (patch)
treef16259f2221f57a765a3e67f77d12dd9a3a85f65 /src/theory/shared_solver.cpp
parent1d5b5b32ffe14c0f0d68d0b9a5ac36147588bfae (diff)
Miscellaneous changes from central ee branch (#6687)
Minor reorganization to make calls to theory engine from combination engine / shared solver more organized.
Diffstat (limited to 'src/theory/shared_solver.cpp')
-rw-r--r--src/theory/shared_solver.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/theory/shared_solver.cpp b/src/theory/shared_solver.cpp
index 95693cafc..c91c34115 100644
--- a/src/theory/shared_solver.cpp
+++ b/src/theory/shared_solver.cpp
@@ -34,7 +34,8 @@ SharedSolver::SharedSolver(TheoryEngine& te, ProofNodeManager* pnm)
d_logicInfo(te.getLogicInfo()),
d_sharedTerms(&d_te, d_te.getSatContext(), d_te.getUserContext(), pnm),
d_preRegistrationVisitor(&te, d_te.getSatContext()),
- d_sharedTermsVisitor(&te, d_sharedTerms, d_te.getSatContext())
+ d_sharedTermsVisitor(&te, d_sharedTerms, d_te.getSatContext()),
+ d_out(te.theoryOf(THEORY_BUILTIN)->getOutputChannel())
{
}
@@ -104,9 +105,13 @@ EqualityStatus SharedSolver::getEqualityStatus(TNode a, TNode b)
return EQUALITY_UNKNOWN;
}
-void SharedSolver::sendLemma(TrustNode trn, TheoryId atomsTo)
+bool SharedSolver::propagateLit(TNode predicate, bool value)
{
- d_te.lemma(trn, LemmaProperty::NONE, atomsTo);
+ if (value)
+ {
+ return d_out.propagate(predicate);
+ }
+ return d_out.propagate(predicate.notNode());
}
bool SharedSolver::propagateSharedEquality(theory::TheoryId theory,
@@ -130,5 +135,12 @@ bool SharedSolver::propagateSharedEquality(theory::TheoryId theory,
bool SharedSolver::isShared(TNode t) const { return d_sharedTerms.isShared(t); }
+void SharedSolver::sendLemma(TrustNode trn, TheoryId atomsTo)
+{
+ d_te.lemma(trn, LemmaProperty::NONE, atomsTo);
+}
+
+void SharedSolver::sendConflict(TrustNode trn) { d_out.trustedConflict(trn); }
+
} // namespace theory
} // namespace cvc5
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback