summaryrefslogtreecommitdiff
path: root/src/theory/shared_solver.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/shared_solver.h')
-rw-r--r--src/theory/shared_solver.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/theory/shared_solver.h b/src/theory/shared_solver.h
index 9198e5043..396888f66 100644
--- a/src/theory/shared_solver.h
+++ b/src/theory/shared_solver.h
@@ -32,6 +32,7 @@ class TheoryEngine;
namespace theory {
struct EeSetupInfo;
+class OutputChannel;
/**
* A base class for shared solver. The shared solver is the component of theory
@@ -108,6 +109,11 @@ class SharedSolver
virtual bool isShared(TNode t) const;
/**
+ * Propagate the predicate with polarity value on the output channel of this
+ * solver.
+ */
+ bool propagateLit(TNode predicate, bool value);
+ /**
* Method called by equalityEngine when a becomes (dis-)equal to b and a and b
* are shared with the theory. Returns false if there is a direct conflict
* (via rewrite for example).
@@ -118,6 +124,8 @@ class SharedSolver
bool value);
/** Send lemma to the theory engine, atomsTo is the theory to send atoms to */
void sendLemma(TrustNode trn, TheoryId atomsTo);
+ /** Send conflict to the theory engine */
+ void sendConflict(TrustNode trn);
protected:
/** Solver-specific pre-register shared */
@@ -132,6 +140,8 @@ class SharedSolver
PreRegisterVisitor d_preRegistrationVisitor;
/** Visitor for collecting shared terms */
SharedTermsVisitor d_sharedTermsVisitor;
+ /** Output channel of theory builtin */
+ OutputChannel& d_out;
};
} // namespace theory
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback