summaryrefslogtreecommitdiff
path: root/test/regress/regress0/bv/ackermann5.smt2
diff options
context:
space:
mode:
authorYing Sheng <sqy1415@gmail.com>2019-12-16 11:42:36 -0800
committerAndres Noetzli <andres.noetzli@gmail.com>2019-12-16 11:42:36 -0800
commit49f0f09c6ef1c04fcd5b088456cea9998cff3c91 (patch)
tree0d5746c90c1e7ca3e336a8cfc7417b05c0eecbe8 /test/regress/regress0/bv/ackermann5.smt2
parentc101a6b42d1f14bc750fb2328ddd83261148d7ae (diff)
Support ackermannization on uninterpreted sorts in BV (#3372)
Support ackermannization on uninterpreted sorts in BV. For uninterpreted sorts, we create a bit-vector sort to replace it. For an uninterpreted sort `S`, if the number of variables within sort `S` is `n`, the replacing bit-vector will have size (log n)+1.
Diffstat (limited to 'test/regress/regress0/bv/ackermann5.smt2')
-rw-r--r--test/regress/regress0/bv/ackermann5.smt231
1 files changed, 31 insertions, 0 deletions
diff --git a/test/regress/regress0/bv/ackermann5.smt2 b/test/regress/regress0/bv/ackermann5.smt2
new file mode 100644
index 000000000..d29311109
--- /dev/null
+++ b/test/regress/regress0/bv/ackermann5.smt2
@@ -0,0 +1,31 @@
+; COMMAND-LINE: --ackermann --no-check-models --no-check-proofs --no-check-unsat-cores
+; EXPECT: sat
+(set-logic QF_UFBV)
+
+(declare-sort S 0)
+(declare-sort T 0)
+
+(declare-fun s1 () S)
+(declare-fun s2 () S)
+(declare-fun t1 () T)
+(declare-fun t2 () T)
+
+(declare-fun a () (_ BitVec 4))
+(declare-fun b () (_ BitVec 4))
+
+(declare-fun f (S) (_ BitVec 4))
+(declare-fun g (S) S)
+(declare-fun h (T) S)
+(declare-fun i (T) T)
+
+(assert (= (f s1) (bvand a b)))
+(assert (= (f s2) (bvand a b)))
+
+(assert (= (f (g s1)) (f (h (i t1)))))
+(assert (= (f (g (h (i t2)))) (f (h (i t2)))))
+(assert (= t1 t2))
+(assert (= s1 (h (i t2))))
+
+(check-sat)
+(exit)
+
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback