diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-01-30 11:53:54 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-30 11:53:54 -0600 |
commit | f118ce702d191a5250569611da530dbf67337fb1 (patch) | |
tree | 83da0b4c0552f5dca1bc367fb9ccaabf972a4d77 /src/theory/strings/solver_state.h | |
parent | 7215dfe9a6d1dffb96994df5df87ae52a0f784b3 (diff) |
Move disequality list to solver state in strings (#3678)
Diffstat (limited to 'src/theory/strings/solver_state.h')
-rw-r--r-- | src/theory/strings/solver_state.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/theory/strings/solver_state.h b/src/theory/strings/solver_state.h index 46d198d36..cb17e6d1b 100644 --- a/src/theory/strings/solver_state.h +++ b/src/theory/strings/solver_state.h @@ -88,6 +88,8 @@ class EqcInfo */ class SolverState { + typedef context::CDList<Node> NodeList; + public: SolverState(context::Context* c, eq::EqualityEngine& ee, Valuation& v); ~SolverState(); @@ -111,7 +113,18 @@ class SolverState bool areDisequal(Node a, Node b) const; /** get equality engine */ eq::EqualityEngine* getEqualityEngine() const; + /** + * Get the list of disequalities that are currently asserted to the equality + * engine. + */ + const context::CDList<Node>& getDisequalityList() const; //-------------------------------------- end equality information + //-------------------------------------- notifications for equalities + /** called when two equivalence classes will merge */ + void eqNotifyPreMerge(TNode t1, TNode t2); + /** called when two equivalence classes are made disequal */ + void eqNotifyDisequal(TNode t1, TNode t2, TNode reason); + //-------------------------------------- end notifications for equalities //------------------------------------------ conflicts /** * Set that the current state of the solver is in conflict. This should be @@ -188,6 +201,11 @@ class SolverState context::Context* d_context; /** Reference to equality engine of the theory of strings. */ eq::EqualityEngine& d_ee; + /** + * The (SAT-context-dependent) list of disequalities that have been asserted + * to the equality engine above. + */ + NodeList d_eeDisequalities; /** Reference to the valuation of the theory of strings */ Valuation& d_valuation; /** Are we in conflict? */ |