diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-06-30 18:08:54 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-30 18:08:54 -0500 |
commit | ffed5a43764641d4808aa77bb0e393623fd4442d (patch) | |
tree | ea8af32d4c457dc153a52bd29f76994f09c84149 | |
parent | d00ee06575318e4fa901f3367e76883bf8692cd9 (diff) |
Fix normal form for re.comp (#4676)
Fixes #4674.
-rw-r--r-- | src/theory/strings/regexp_solver.cpp | 1 | ||||
-rw-r--r-- | test/regress/CMakeLists.txt | 1 | ||||
-rw-r--r-- | test/regress/regress0/strings/issue4674-recomp-nf.smt2 | 5 |
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) |