diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2021-06-10 16:53:38 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-10 21:53:38 +0000 |
commit | 5fb5d6030aa031d5f63676ec29ffa8e158fa5c6a (patch) | |
tree | 5d03b8923d08bcdf9c84151c7fab1a4ee4e52fba /test/regress | |
parent | 6394bf6ffa2486587d1726271769117f7dc227a8 (diff) |
Ensure bv2nat and int2bv are not rewritten when using solve-bv-as-int (#6725)
This PR ensures we do not eagerly rewrite bv2nat and int2bv when using solve-bv-as-int. Instead they are rewritten during expandDefinitions (at the end of preprocessing).
It also updates regressions that relied on lazy extended function reductions in the lazy solver to use solve-bv-as-int, and adds a missing case (INT_TO_BITVECTOR) in the solve-int-as-bv preprocessing pass.
A followup PR will remove support for lazy extended function reductions for bv2nat / int2bv altogether.
Diffstat (limited to 'test/regress')
-rw-r--r-- | test/regress/CMakeLists.txt | 1 | ||||
-rw-r--r-- | test/regress/regress0/bv/bv-int-collapse1.smt2 | 2 | ||||
-rw-r--r-- | test/regress/regress0/bv/bv-int-collapse2.smt2 | 2 | ||||
-rw-r--r-- | test/regress/regress0/bv/bv2nat-simp-range.smt2 | 1 | ||||
-rw-r--r-- | test/regress/regress1/bv/bv2nat-ground.smt2 | 2 | ||||
-rw-r--r-- | test/regress/regress1/bv2int-isabelle.smt2 | 16 | ||||
-rw-r--r-- | test/regress/regress2/bv_to_int_mask_array_1.smt2 | 2 |
7 files changed, 22 insertions, 4 deletions
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt index b94e06e47..9ad4f7e8a 100644 --- a/test/regress/CMakeLists.txt +++ b/test/regress/CMakeLists.txt @@ -1495,6 +1495,7 @@ set(regress_1_tests regress1/bags/union_disjoint.smt2 regress1/bags/union_max1.smt2 regress1/bags/union_max2.smt2 + regress1/bv2int-isabelle.smt2 regress1/bv/bench_38.delta.smt2 regress1/bv/bug787.smt2 regress1/bv/bug_extract_mult_leading_bit.smt2 diff --git a/test/regress/regress0/bv/bv-int-collapse1.smt2 b/test/regress/regress0/bv/bv-int-collapse1.smt2 index 1f5015d14..60826da85 100644 --- a/test/regress/regress0/bv/bv-int-collapse1.smt2 +++ b/test/regress/regress0/bv/bv-int-collapse1.smt2 @@ -1,4 +1,4 @@ -; COMMAND-LINE: --bv-solver=lazy +; COMMAND-LINE: --solve-bv-as-int=sum ; EXPECT: unsat (set-logic ALL) (set-info :status unsat) diff --git a/test/regress/regress0/bv/bv-int-collapse2.smt2 b/test/regress/regress0/bv/bv-int-collapse2.smt2 index d56188dad..130b045d9 100644 --- a/test/regress/regress0/bv/bv-int-collapse2.smt2 +++ b/test/regress/regress0/bv/bv-int-collapse2.smt2 @@ -1,4 +1,4 @@ -; COMMAND-LINE: --bv-solver=lazy +; COMMAND-LINE: --solve-bv-as-int=sum ; EXPECT: unsat (set-logic ALL) (set-info :status unsat) diff --git a/test/regress/regress0/bv/bv2nat-simp-range.smt2 b/test/regress/regress0/bv/bv2nat-simp-range.smt2 index 31e2b7bd1..daae6a1c3 100644 --- a/test/regress/regress0/bv/bv2nat-simp-range.smt2 +++ b/test/regress/regress0/bv/bv2nat-simp-range.smt2 @@ -1,3 +1,4 @@ +; COMMAND-LINE: --solve-bv-as-int=sum ; EXPECT: unsat (set-logic ALL) (set-info :status unsat) diff --git a/test/regress/regress1/bv/bv2nat-ground.smt2 b/test/regress/regress1/bv/bv2nat-ground.smt2 index 7e0da282e..b68051719 100644 --- a/test/regress/regress1/bv/bv2nat-ground.smt2 +++ b/test/regress/regress1/bv/bv2nat-ground.smt2 @@ -1,4 +1,4 @@ -; COMMAND-LINE: --bv-solver=lazy +; COMMAND-LINE: --solve-bv-as-int=sum ; EXPECT: unsat (set-logic QF_BVLIA) (set-info :status unsat) diff --git a/test/regress/regress1/bv2int-isabelle.smt2 b/test/regress/regress1/bv2int-isabelle.smt2 new file mode 100644 index 000000000..e8d1efe51 --- /dev/null +++ b/test/regress/regress1/bv2int-isabelle.smt2 @@ -0,0 +1,16 @@ +; COMMAND-LINE: --solve-bv-as-int=sum --no-check-unsat-cores +; EXPECT: unsat +(set-logic ALL) +(declare-fun s$ () (_ BitVec 32)) +(declare-fun x$ () (_ BitVec 32)) +(declare-fun i$ () (_ BitVec 32)) +(define-fun bound () Int (bv2nat ((_ int2bv 32) 2048))) +(define-fun bseg ((x (_ BitVec 32)) (s (_ BitVec 32))) Bool (and (< (bv2nat x) bound) (<= (+ (bv2nat x) (bv2nat s)) bound))) + +;assumptions +(assert (bseg x$ s$)) +(assert (<= (bv2nat i$) (bv2nat s$))) + +;conclusion +(assert (not (= (bv2nat (bvadd x$ i$)) (+ (bv2nat x$) (bv2nat i$))))) +(check-sat) diff --git a/test/regress/regress2/bv_to_int_mask_array_1.smt2 b/test/regress/regress2/bv_to_int_mask_array_1.smt2 index c8cf40abf..165e39e7a 100644 --- a/test/regress/regress2/bv_to_int_mask_array_1.smt2 +++ b/test/regress/regress2/bv_to_int_mask_array_1.smt2 @@ -1,7 +1,7 @@ ; COMMAND-LINE: --solve-bv-as-int=sum --bvand-integer-granularity=1 ; COMMAND-LINE: --solve-bv-as-int=iand --iand-mode=value ; COMMAND-LINE: --solve-bv-as-int=iand --iand-mode=sum -; COMMAND-LINE: --solve-bv-as-int=bv +; COMMAND-LINE: --solve-bv-as-int=bv --no-check-unsat-cores ; EXPECT: unsat (set-logic ALL) (declare-fun A () (Array Int Int)) |