diff options
author | Tianyi Liang <tianyi-liang@uiowa.edu> | 2014-02-28 11:05:09 -0600 |
---|---|---|
committer | Tianyi Liang <tianyi-liang@uiowa.edu> | 2014-02-28 22:59:00 -0600 |
commit | acb79cbe43ddcd855db042b7c937fc2eacaa0ac3 (patch) | |
tree | e8af21bba458cbc2a00d3512519cea3e07af3b65 /src/theory/strings/theory_strings.h | |
parent | 76f497ef9444a81143ad35b2eda899e119b8e662 (diff) |
a new regular expression engine for solving both positive and negative membership constraints
Diffstat (limited to 'src/theory/strings/theory_strings.h')
-rw-r--r-- | src/theory/strings/theory_strings.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/theory/strings/theory_strings.h b/src/theory/strings/theory_strings.h index ea92865b2..bf8a3d894 100644 --- a/src/theory/strings/theory_strings.h +++ b/src/theory/strings/theory_strings.h @@ -111,6 +111,7 @@ public: private: // Constants Node d_emptyString; + Node d_emptyRegexp; Node d_true; Node d_false; Node d_zero; @@ -228,6 +229,7 @@ private: bool checkCardinality(); bool checkInductiveEquations(); bool checkMemberships(); + bool checkMemberships2(); bool checkContains(); bool checkPosContains(); bool checkNegContains(); @@ -299,6 +301,7 @@ private: private: // regular expression memberships NodeList d_reg_exp_mem; + std::map< Node, bool > d_regexp_cache; // antecedant for why reg exp membership must be true std::map< Node, Node > d_reg_exp_ant; std::map< Node, bool > d_reg_exp_unroll; @@ -310,6 +313,7 @@ private: std::map< Node, bool > d_membership_length; // regular expression derivative std::map< Node, bool > d_reg_exp_deriv; + NodeBoolMap d_regexp_deriv_processed; // regular expression operations RegExpOpr d_regexp_opr; |