summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-06-30 18:08:54 -0500
committerGitHub <noreply@github.com>2020-06-30 18:08:54 -0500
commitffed5a43764641d4808aa77bb0e393623fd4442d (patch)
treeea8af32d4c457dc153a52bd29f76994f09c84149
parentd00ee06575318e4fa901f3367e76883bf8692cd9 (diff)
Fix normal form for re.comp (#4676)
Fixes #4674.
-rw-r--r--src/theory/strings/regexp_solver.cpp1
-rw-r--r--test/regress/CMakeLists.txt1
-rw-r--r--test/regress/regress0/strings/issue4674-recomp-nf.smt25
3 files changed, 7 insertions, 0 deletions
diff --git a/src/theory/strings/regexp_solver.cpp b/src/theory/strings/regexp_solver.cpp
index 627258a4c..53c6c9acc 100644
--- a/src/theory/strings/regexp_solver.cpp
+++ b/src/theory/strings/regexp_solver.cpp
@@ -672,6 +672,7 @@ Node RegExpSolver::getNormalSymRegExp(Node r, std::vector<Node>& nf_exp)
case REGEXP_UNION:
case REGEXP_INTER:
case REGEXP_STAR:
+ case REGEXP_COMPLEMENT:
{
std::vector<Node> vec_nodes;
for (const Node& cr : r)
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt
index 9a58457e6..10e2f414e 100644
--- a/test/regress/CMakeLists.txt
+++ b/test/regress/CMakeLists.txt
@@ -967,6 +967,7 @@ set(regress_0_tests
regress0/strings/issue4070.smt2
regress0/strings/issue4376.smt2
regress0/strings/issue4662-consume-nterm.smt2
+ regress0/strings/issue4674-recomp-nf.smt2
regress0/strings/itos-entail.smt2
regress0/strings/large-model.smt2
regress0/strings/leadingzero001.smt2
diff --git a/test/regress/regress0/strings/issue4674-recomp-nf.smt2 b/test/regress/regress0/strings/issue4674-recomp-nf.smt2
new file mode 100644
index 000000000..2096d51ef
--- /dev/null
+++ b/test/regress/regress0/strings/issue4674-recomp-nf.smt2
@@ -0,0 +1,5 @@
+(set-logic QF_S)
+(set-info :status sat)
+(declare-fun a () String)
+(assert (str.in_re "" (re.++ (str.to_re a) (re.comp re.allchar))))
+(check-sat)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback