summaryrefslogtreecommitdiff
path: root/src/theory/arith/nl/nonlinear_extension.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-07-16 12:10:58 -0500
committerGitHub <noreply@github.com>2020-07-16 12:10:58 -0500
commitf7559c879d1ebc7d4d9b9f72b0858bdf42c9ed8c (patch)
treef4ceec82dfec21737b4cc1c555706bd8426fc9e9 /src/theory/arith/nl/nonlinear_extension.h
parent051106d0033c8108008acba65ad02a77b5ddd19c (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.h7
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
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback