summaryrefslogtreecommitdiff
path: root/test/regress/regress0/bv/bool-to-bv-ite-array-bool.smt2
diff options
context:
space:
mode:
authormakaimann <makaim@stanford.edu>2020-03-09 21:13:21 -0700
committerGitHub <noreply@github.com>2020-03-09 21:13:21 -0700
commit5cbc35e70c2a80094dade1a58605882e3eb1d326 (patch)
tree5ec95a56e934b8aeb119ba8ad289ae720401013c /test/regress/regress0/bv/bool-to-bv-ite-array-bool.smt2
parent0e09af0be57ec4df28869e4383a40d847c0a6b5a (diff)
Enhancement: make the bool-to-bv pass more robust and targeted (#3021)
This pull request is an improvement to the bool-to-bv preprocessing pass. The existing pass is both too weak and too strong, depending on the circumstance. Throughout this description, "lower" refers to lowering a boolean to a bit-vector.
Diffstat (limited to 'test/regress/regress0/bv/bool-to-bv-ite-array-bool.smt2')
-rw-r--r--test/regress/regress0/bv/bool-to-bv-ite-array-bool.smt221
1 files changed, 21 insertions, 0 deletions
diff --git a/test/regress/regress0/bv/bool-to-bv-ite-array-bool.smt2 b/test/regress/regress0/bv/bool-to-bv-ite-array-bool.smt2
new file mode 100644
index 000000000..2a0c9d7b1
--- /dev/null
+++ b/test/regress/regress0/bv/bool-to-bv-ite-array-bool.smt2
@@ -0,0 +1,21 @@
+; COMMAND-LINE: --bool-to-bv=all --simplification=none
+; EXPECT: sat
+; checks that bool-to-bv pass handles arrays over booleans correctly
+(set-logic QF_ABV)
+
+(declare-const A (Array Bool Bool))
+(declare-const B (Array Bool Bool))
+(declare-const b1 Bool)
+(declare-const b2 Bool)
+(declare-const b3 Bool)
+(declare-const b4 Bool)
+
+(assert (= A (store B b1 b2)))
+(assert (= b3 (select A (select B b2))))
+(assert (=> b1 b2))
+(assert (not (and b2 (ite b3 b1 b2))))
+(assert (=> b3 b1))
+(assert (= b4 (select B b2)))
+(assert (xor b4 b2))
+
+(check-sat) \ No newline at end of file
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback