diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-07-16 12:10:58 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-16 12:10:58 -0500 |
commit | f7559c879d1ebc7d4d9b9f72b0858bdf42c9ed8c (patch) | |
tree | f4ceec82dfec21737b4cc1c555706bd8426fc9e9 /src/theory/arith/nl/nonlinear_extension.h | |
parent | 051106d0033c8108008acba65ad02a77b5ddd19c (diff) |
Make ExtTheory a utility and not a member of Theory (#4753)
Previously, we assumed that ExtTheory, the module for doing context-dependent simplification, was one-to-one with Theory. This design is not necessary. This makes this class a utility, which can be used as needed. This makes e.g. the initialization of TheoryStrings much easier, since the ExtTheory object can be created first.
Diffstat (limited to 'src/theory/arith/nl/nonlinear_extension.h')
-rw-r--r-- | src/theory/arith/nl/nonlinear_extension.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/theory/arith/nl/nonlinear_extension.h b/src/theory/arith/nl/nonlinear_extension.h index 69710265c..b4e5df976 100644 --- a/src/theory/arith/nl/nonlinear_extension.h +++ b/src/theory/arith/nl/nonlinear_extension.h @@ -32,6 +32,7 @@ #include "theory/arith/nl/stats.h" #include "theory/arith/nl/transcendental_solver.h" #include "theory/arith/theory_arith.h" +#include "theory/ext_theory.h" #include "theory/uf/equality_engine.h" namespace CVC4 { @@ -70,6 +71,10 @@ class NonlinearExtension public: NonlinearExtension(TheoryArith& containing, eq::EqualityEngine* ee); ~NonlinearExtension(); + /** + * Does non-context dependent setup for a node connected to a theory. + */ + void preRegisterTerm(TNode n); /** Get current substitution * * This function and the one below are @@ -289,6 +294,8 @@ class NonlinearExtension NlStats d_stats; // needs last call effort bool d_needsLastCall; + /** Extended theory, responsible for context-dependent simplification. */ + ExtTheory d_extTheory; /** The non-linear model object * * This class is responsible for computing model values for arithmetic terms |