diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-09-08 20:36:08 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-08 20:36:08 -0500 |
commit | 1d3bb6048085342e2d85bf5193367afcd96885fa (patch) | |
tree | b09c504cf13862f6286133130063bcfb57050556 /src/theory/sets/cardinality_extension.h | |
parent | 2786ba1efc7d420b5eda5389edffe72b676de32b (diff) |
Split term registry from theory state in sets (#5037)
Currently, the theory state object SolverState in sets sends lemmas and has a reference to the parent theory. This PR is work towards eliminating these dependencies.
This adds a TermRegistry object which is responsible for some of the tasks currently done by SolverState, including all those involving lemmas.
Notice this also makes a bug fix in getUnivSetEqClass where the universe set was being returned instead of its representative.
A followup PR will make SolverState maintain SAT-context-dependent membership lists which is also required for breaking the dependence on the parent theory.
Diffstat (limited to 'src/theory/sets/cardinality_extension.h')
-rw-r--r-- | src/theory/sets/cardinality_extension.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/theory/sets/cardinality_extension.h b/src/theory/sets/cardinality_extension.h index c257f45c5..38f259919 100644 --- a/src/theory/sets/cardinality_extension.h +++ b/src/theory/sets/cardinality_extension.h @@ -21,6 +21,7 @@ #include "context/context.h" #include "theory/sets/inference_manager.h" #include "theory/sets/solver_state.h" +#include "theory/sets/term_registry.h" #include "theory/type_set.h" #include "theory/uf/equality_engine.h" @@ -67,7 +68,9 @@ class CardinalityExtension * Constructs a new instance of the cardinality solver w.r.t. the provided * contexts. */ - CardinalityExtension(SolverState& s, InferenceManager& im); + CardinalityExtension(SolverState& s, + InferenceManager& im, + TermRegistry& treg); ~CardinalityExtension() {} /** reset @@ -160,6 +163,8 @@ class CardinalityExtension SolverState& d_state; /** Reference to the inference manager for the theory of sets */ InferenceManager& d_im; + /** Reference to the term registry */ + TermRegistry& d_treg; /** register cardinality term * * This method add lemmas corresponding to the definition of |