summaryrefslogtreecommitdiff
path: root/test/regress
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2021-05-07 19:25:27 -0500
committerGitHub <noreply@github.com>2021-05-07 19:25:27 -0500
commit8e5aba973b06fb581221a82aacdf7d3ca7938a22 (patch)
treeea5db058d5991ec44ca1f0c47054c3f0d733f367 /test/regress
parent080f0de4379c4e1fe5a016e40c7852a3abb52760 (diff)
Add support for datatype update (#6449)
This removes the special case of TUPLE_UPDATE and RECORD_UPDATE in favor of the more general datatype update. Datatype update is handled analogously to APPLY_SELECTOR / APPLY_TESTER.
Diffstat (limited to 'test/regress')
-rw-r--r--test/regress/CMakeLists.txt2
-rw-r--r--test/regress/regress0/datatypes/list-update-sat.smt28
-rw-r--r--test/regress/regress0/datatypes/list-update.smt210
3 files changed, 20 insertions, 0 deletions
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt
index 9bda5cff1..538868c6c 100644
--- a/test/regress/CMakeLists.txt
+++ b/test/regress/CMakeLists.txt
@@ -480,6 +480,8 @@ set(regress_0_tests
regress0/datatypes/issue5280-no-nrec.smt2
regress0/datatypes/jsat-2.6.smt2
regress0/datatypes/list-bool.smt2
+ regress0/datatypes/list-update.smt2
+ regress0/datatypes/list-update-sat.smt2
regress0/datatypes/model-subterms-min.smt2
regress0/datatypes/mutually-recursive.cvc
regress0/datatypes/pair-bool-bool.cvc
diff --git a/test/regress/regress0/datatypes/list-update-sat.smt2 b/test/regress/regress0/datatypes/list-update-sat.smt2
new file mode 100644
index 000000000..9f424e595
--- /dev/null
+++ b/test/regress/regress0/datatypes/list-update-sat.smt2
@@ -0,0 +1,8 @@
+(set-logic ALL)
+(set-info :status sat)
+(declare-datatypes ((list 0)) (
+((cons (head Int) (tail list)) (nil))
+))
+(declare-fun a () list)
+(assert (= ((_ update head) a 3) (cons 3 nil)))
+(check-sat)
diff --git a/test/regress/regress0/datatypes/list-update.smt2 b/test/regress/regress0/datatypes/list-update.smt2
new file mode 100644
index 000000000..178f1a000
--- /dev/null
+++ b/test/regress/regress0/datatypes/list-update.smt2
@@ -0,0 +1,10 @@
+(set-logic ALL)
+(set-info :status unsat)
+(declare-datatypes ((list 0)) (
+((cons (head Int) (tail list)) (nil))
+))
+(declare-fun a () list)
+(declare-fun b () list)
+(assert ((_ is cons) a))
+(assert (= ((_ update head) a 3) ((_ update head) b 4)))
+(check-sat)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback