summaryrefslogtreecommitdiff
path: root/src/theory/strings/theory_strings.h
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2016-08-16 12:24:58 -0500
committerajreynol <andrew.j.reynolds@gmail.com>2016-08-16 12:25:29 -0500
commit36cfaab5caa86773e47a8cca8f4d8c0d5edec99f (patch)
tree19ce13bba397a6139ac42e658417074c462b2318 /src/theory/strings/theory_strings.h
parent20fc32c0c4a2518673e1cbaa0afb3c4fb284ffe6 (diff)
Initial infrastructure for ExtTheory, generalize extended term handling in TheoryStrings to use this.
Diffstat (limited to 'src/theory/strings/theory_strings.h')
-rw-r--r--src/theory/strings/theory_strings.h13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/theory/strings/theory_strings.h b/src/theory/strings/theory_strings.h
index 3cab81a70..fe72bd8e7 100644
--- a/src/theory/strings/theory_strings.h
+++ b/src/theory/strings/theory_strings.h
@@ -70,8 +70,9 @@ public:
bool propagate(TNode literal);
void explain( TNode literal, std::vector<TNode>& assumptions );
Node explain( TNode literal );
-
-
+ eq::EqualityEngine * getEqualityEngine() { return &d_equalityEngine; }
+ bool getCurrentSubstitution( int effort, std::vector< Node >& vars, std::vector< Node >& subs, std::map< Node, std::vector< Node > >& exp );
+
// NotifyClass for equality engine
class NotifyClass : public eq::EqualityEngineNotify {
TheoryStrings& d_str;
@@ -251,8 +252,6 @@ private:
/** All the function terms that the theory has seen */
context::CDList<TNode> d_functionsTerms;
private:
- //extended string terms, map to whether they are active
- NodeBoolMap d_ext_func_terms;
//any non-reduced extended functions exist
context::CDO< bool > d_has_extf;
// static information about extf
@@ -276,15 +275,13 @@ private:
//explanation
std::vector< Node > d_exp;
//reps -> list of variables
- std::map< Node, std::vector< Node > > d_rep_vars;
+ //std::map< Node, std::vector< Node > > d_rep_vars;
//false if it is reduced in the model
bool d_model_active;
};
- std::map< Node, ExtfInfo > d_extf_info;
std::map< Node, ExtfInfoTmp > d_extf_info_tmp;
//collect extended operator terms
void collectExtendedFuncTerms( Node n, std::map< Node, bool >& visited );
- void addExtendedFuncTerm( Node n );
private:
class InferInfo {
public:
@@ -324,7 +321,7 @@ private:
Node getSymbolicDefinition( Node n, std::vector< Node >& exp );
//check extf reduction
void checkExtfReductions( int effort );
- void checkExtfReduction( Node atom, int pol, int effort );
+ bool checkExtfReduction( Node atom, int pol, int effort );
//flat forms check
void checkFlatForms();
Node checkCycles( Node eqc, std::vector< Node >& curr, std::vector< Node >& exp );
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback