diff options
author | Aina Niemetz <aina.niemetz@gmail.com> | 2018-09-10 17:16:28 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-10 17:16:28 -0700 |
commit | f5746ca4a24c1b9f05f5528bc66016668d9a7863 (patch) | |
tree | f3cadde19aa4802f79887c6db8bead235bb60028 /src/preprocessing/preprocessing_pass_context.h | |
parent | 29acf0bb9fa0f7b5679360920c062179498e4a3b (diff) |
Refactor non-clausal simplify preprocessing pass. (#2425)
Diffstat (limited to 'src/preprocessing/preprocessing_pass_context.h')
-rw-r--r-- | src/preprocessing/preprocessing_pass_context.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/preprocessing/preprocessing_pass_context.h b/src/preprocessing/preprocessing_pass_context.h index a2e83aa4c..ae989d700 100644 --- a/src/preprocessing/preprocessing_pass_context.h +++ b/src/preprocessing/preprocessing_pass_context.h @@ -55,6 +55,11 @@ class PreprocessingPassContext return d_circuitPropagator; } + context::CDHashSet<Node, NodeHashFunction>& getSymsInAssertions() + { + return d_symsInAssertions; + } + void spendResource(unsigned amount) { d_resourceManager->spendResource(amount); @@ -68,9 +73,18 @@ class PreprocessingPassContext /* Enable Integers. */ void enableIntegers(); + /** Record symbols in assertions + * + * This method is called when a set of assertions is finalized. It adds + * the symbols to d_symsInAssertions that occur in assertions. + */ + void recordSymbolsInAssertions(const std::vector<Node>& assertions); + private: - /* Pointer to the SmtEngine that this context was created in. */ + /** Pointer to the SmtEngine that this context was created in. */ SmtEngine* d_smt; + + /** Pointer to the ResourceManager for this context. */ ResourceManager* d_resourceManager; /** Instance of the ITE remover */ @@ -78,6 +92,13 @@ class PreprocessingPassContext /** Instance of the circuit propagator */ theory::booleans::CircuitPropagator* d_circuitPropagator; + + /** + * The (user-context-dependent) set of symbols that occur in at least one + * assertion in the current user context. + */ + context::CDHashSet<Node, NodeHashFunction> d_symsInAssertions; + }; // class PreprocessingPassContext } // namespace preprocessing |