summaryrefslogtreecommitdiff
path: root/src/theory/strings/theory_strings.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/strings/theory_strings.h')
-rw-r--r--src/theory/strings/theory_strings.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/theory/strings/theory_strings.h b/src/theory/strings/theory_strings.h
index 6c653bf05..ec250288b 100644
--- a/src/theory/strings/theory_strings.h
+++ b/src/theory/strings/theory_strings.h
@@ -163,7 +163,18 @@ class TheoryStrings : public Theory {
std::vector<Node>& vars,
std::vector<Node>& subs,
std::map<Node, std::vector<Node> >& exp) override;
- int getReduction(int effort, Node n, Node& nr) override;
+ //--------------------------for checkExtfReductions
+ /** do reduction
+ *
+ * This is called when an extended function application n is not able to be
+ * simplified by context-depdendent simplification, and we are resorting to
+ * expanding n to its full semantics via a reduction. This method returns
+ * true if it successfully reduced n by some reduction and sets isCd to
+ * true if the reduction was (SAT)-context-dependent, and false otherwise.
+ * The argument effort has the same meaning as in checkExtfReductions.
+ */
+ bool doReduction(int effort, Node n, bool& isCd);
+ //--------------------------end for checkExtfReductions
// NotifyClass for equality engine
class NotifyClass : public eq::EqualityEngineNotify {
@@ -278,9 +289,8 @@ private:
NodeSet d_pregistered_terms_cache;
NodeSet d_registered_terms_cache;
NodeSet d_length_lemma_terms_cache;
- // preprocess cache
+ /** preprocessing utility, for performing strings reductions */
StringsPreprocess d_preproc;
- NodeBoolMap d_preproc_cache;
// extended functions inferences cache
NodeSet d_extf_infer_cache;
NodeSet d_extf_infer_cache_u;
@@ -740,6 +750,12 @@ private:
/** initialize */
void initialize(const std::vector<Node>& vars);
+ /*
+ * Do not hide the zero-argument version of initialize() inherited from the
+ * base class
+ */
+ using DecisionStrategyFmf::initialize;
+
private:
/**
* User-context-dependent node corresponding to the sum of the lengths of
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback