summaryrefslogtreecommitdiff
path: root/src/theory/strings/regexp_solver.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2019-10-23 18:15:28 -0500
committerAndres Noetzli <andres.noetzli@gmail.com>2019-10-23 16:15:28 -0700
commit64cef995a521ac7211b9e3ed95c85deb186ff352 (patch)
tree927d14ff521127f37192afcfe8b737f15d54e061 /src/theory/strings/regexp_solver.h
parent0d4d9bf3f31687d9cf48b0c45ab420b06ff099f7 (diff)
Fixes for SyGuS + regular expressions (#3313)
This commit fixes numerous issues involving the combination of SyGuS and regular expressions. Combining SyGuS and regular expressions may involve constructing regular expressions that are neither variables nor builtin regular expression operators. The code was not robust for this case, either throwing spurious assertion failures or having incorrect behavior.
Diffstat (limited to 'src/theory/strings/regexp_solver.h')
-rw-r--r--src/theory/strings/regexp_solver.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/theory/strings/regexp_solver.h b/src/theory/strings/regexp_solver.h
index 0b84ebc79..a43ea516a 100644
--- a/src/theory/strings/regexp_solver.h
+++ b/src/theory/strings/regexp_solver.h
@@ -108,6 +108,16 @@ class RegExpSolver
InferenceManager& d_im;
// check membership constraints
Node mkAnd(Node c1, Node c2);
+ /**
+ * Check partial derivative
+ *
+ * Returns false if a lemma pertaining to checking the partial derivative
+ * of x in r was added. In this case, addedLemma is updated to true.
+ *
+ * The argument atom is the assertion that explains x in r, which is the
+ * normalized form of atom that may be modified using a substitution whose
+ * explanation is nf_exp.
+ */
bool checkPDerivative(
Node x, Node r, Node atom, bool& addedLemma, std::vector<Node>& nf_exp);
Node getMembership(Node n, bool isPos, unsigned i);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback