diff options
author | Ying Sheng <sqy1415@gmail.com> | 2019-12-16 11:42:36 -0800 |
---|---|---|
committer | Andres Noetzli <andres.noetzli@gmail.com> | 2019-12-16 11:42:36 -0800 |
commit | 49f0f09c6ef1c04fcd5b088456cea9998cff3c91 (patch) | |
tree | 0d5746c90c1e7ca3e336a8cfc7417b05c0eecbe8 /test/regress/regress0/bv/ackermann6.smt2 | |
parent | c101a6b42d1f14bc750fb2328ddd83261148d7ae (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/ackermann6.smt2')
-rw-r--r-- | test/regress/regress0/bv/ackermann6.smt2 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/regress/regress0/bv/ackermann6.smt2 b/test/regress/regress0/bv/ackermann6.smt2 new file mode 100644 index 000000000..846339f52 --- /dev/null +++ b/test/regress/regress0/bv/ackermann6.smt2 @@ -0,0 +1,31 @@ +; COMMAND-LINE: --ackermann --no-check-models --no-check-proofs --no-check-unsat-cores +; EXPECT: unsat +(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 (not (= (f (g (h (i t2)))) (f (h (i t2)))))) +(assert (= t1 t2)) +(assert (= s1 (h (i t2)))) + +(check-sat) +(exit) + |