diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-02-26 13:54:41 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-26 13:54:41 -0600 |
commit | b320aa323923822a7702997bbca05e8512da55a4 (patch) | |
tree | 62ed510b54bbfef908296a264002052efc4fff98 /test | |
parent | f26ea8026e94252e4f1418be473d10a5f957b988 (diff) |
Basic support for regular expression complement (#3437)
Fixes #3408 .
Adds basic rewriter, parsing, type checking and implements the required cases in regexp_operation.cpp. It also adds some missing documentation in regexp_operation.h
Diffstat (limited to 'test')
-rw-r--r-- | test/regress/CMakeLists.txt | 2 | ||||
-rw-r--r-- | test/regress/regress0/strings/complement-simple.smt2 | 5 | ||||
-rw-r--r-- | test/regress/regress1/strings/complement-test.smt2 | 12 |
3 files changed, 19 insertions, 0 deletions
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt index 3fe4321d0..1113717ce 100644 --- a/test/regress/CMakeLists.txt +++ b/test/regress/CMakeLists.txt @@ -898,6 +898,7 @@ set(regress_0_tests regress0/strings/code-eval.smt2 regress0/strings/code-perf.smt2 regress0/strings/code-sat-neg-one.smt2 + regress0/strings/complement-simple.smt2 regress0/strings/escchar.smt2 regress0/strings/escchar_25.smt2 regress0/strings/hconst-092618.smt2 @@ -1661,6 +1662,7 @@ set(regress_1_tests regress1/strings/cmu-inc-nlpp-071516.smt2 regress1/strings/cmu-substr-rw.smt2 regress1/strings/code-sequence.smt2 + regress1/strings/complement-test.smt2 regress1/strings/crash-1019.smt2 regress1/strings/csp-prefix-exp-bug.smt2 regress1/strings/double-replace.smt2 diff --git a/test/regress/regress0/strings/complement-simple.smt2 b/test/regress/regress0/strings/complement-simple.smt2 new file mode 100644 index 000000000..c19699448 --- /dev/null +++ b/test/regress/regress0/strings/complement-simple.smt2 @@ -0,0 +1,5 @@ +(set-logic SLIA) +(set-info :status sat) +(declare-fun x () String) +(assert (str.in.re x (re.comp (str.to.re "ABC")))) +(check-sat) diff --git a/test/regress/regress1/strings/complement-test.smt2 b/test/regress/regress1/strings/complement-test.smt2 new file mode 100644 index 000000000..1fcbdc2c3 --- /dev/null +++ b/test/regress/regress1/strings/complement-test.smt2 @@ -0,0 +1,12 @@ +(set-logic SLIA) +(set-info :status sat) +(declare-fun x () String) +(declare-fun y () String) +(declare-fun z () String) +(assert (= x (str.++ "AB" y))) +(assert (or (= y "C") (= y (str.++ "D" z)) (= (str.len y) 10))) +(assert (str.in.re x + (re.inter + (re.comp (str.to.re "AB")) + (re.comp (re.++ (str.to.re "AB") (re.range "A" "E") (re.* re.allchar)))))) +(check-sat) |