diff options
author | ajreynol <andrew.j.reynolds@gmail.com> | 2016-08-16 12:24:58 -0500 |
---|---|---|
committer | ajreynol <andrew.j.reynolds@gmail.com> | 2016-08-16 12:25:29 -0500 |
commit | 36cfaab5caa86773e47a8cca8f4d8c0d5edec99f (patch) | |
tree | 19ce13bba397a6139ac42e658417074c462b2318 /src/theory/strings/theory_strings.h | |
parent | 20fc32c0c4a2518673e1cbaa0afb3c4fb284ffe6 (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.h | 13 |
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 ); |