summaryrefslogtreecommitdiff
path: root/src/theory/strings/theory_strings.h
diff options
context:
space:
mode:
authorTianyi Liang <tianyi-liang@uiowa.edu>2014-02-28 11:05:09 -0600
committerTianyi Liang <tianyi-liang@uiowa.edu>2014-02-28 22:59:00 -0600
commitacb79cbe43ddcd855db042b7c937fc2eacaa0ac3 (patch)
treee8af21bba458cbc2a00d3512519cea3e07af3b65 /src/theory/strings/theory_strings.h
parent76f497ef9444a81143ad35b2eda899e119b8e662 (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.h4
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;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback