diff options
author | Gereon Kremer <gereon.kremer@cs.rwth-aachen.de> | 2020-09-04 00:58:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-03 17:58:03 -0500 |
commit | 19ff08d652de2890eee4674d2a6debe10e879f1f (patch) | |
tree | a1e10e4c354fd44bd1073683b2e4edea8a054e41 /test | |
parent | 8828e545cfb838d806a0ad382671a9af131e8431 (diff) |
Added a new rule to simplify (bvugt (bvurem T x) x) (#4993)
Motivated by #4936, this PR adds a new BV rewrite rule:
(bvugt (bvurem T x) x) ==> (ite (= x 0) (bvugt T 0) false)
Fixes #4936.
Diffstat (limited to 'test')
-rw-r--r-- | test/regress/CMakeLists.txt | 2 | ||||
-rw-r--r-- | test/regress/regress0/bv/pr4993-bvugt-bvurem-a.smt2 | 7 | ||||
-rw-r--r-- | test/regress/regress0/bv/pr4993-bvugt-bvurem-b.smt2 | 7 |
3 files changed, 16 insertions, 0 deletions
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt index 1a33ee3a5..5c31c4fe1 100644 --- a/test/regress/CMakeLists.txt +++ b/test/regress/CMakeLists.txt @@ -366,6 +366,8 @@ set(regress_0_tests regress0/bv/mul-neg-unsat.smt2 regress0/bv/mul-negpow2.smt2 regress0/bv/mult-pow2-negative.smt2 + regress0/bv/pr4993-bvugt-bvurem-a.smt2 + regress0/bv/pr4993-bvugt-bvurem-b.smt2 regress0/bv/sizecheck.cvc regress0/bv/smtcompbug.smtv1.smt2 regress0/bv/test-bv_intro_pow2.smt2 diff --git a/test/regress/regress0/bv/pr4993-bvugt-bvurem-a.smt2 b/test/regress/regress0/bv/pr4993-bvugt-bvurem-a.smt2 new file mode 100644 index 000000000..c6748b19e --- /dev/null +++ b/test/regress/regress0/bv/pr4993-bvugt-bvurem-a.smt2 @@ -0,0 +1,7 @@ +; COMMAND-LINE: --bv-div-zero-const --no-check-unsat-cores +(set-logic QF_BV) +(set-info :status unsat) +(declare-const x (_ BitVec 4)) +(declare-const y (_ BitVec 4)) +(assert (not (= (bvugt (bvurem y x) x) (ite (= x #x0) (bvugt y #x0) false)))) +(check-sat) diff --git a/test/regress/regress0/bv/pr4993-bvugt-bvurem-b.smt2 b/test/regress/regress0/bv/pr4993-bvugt-bvurem-b.smt2 new file mode 100644 index 000000000..7cc75ef62 --- /dev/null +++ b/test/regress/regress0/bv/pr4993-bvugt-bvurem-b.smt2 @@ -0,0 +1,7 @@ +; COMMAND-LINE: --no-bv-div-zero-const --no-check-unsat-cores +(set-logic QF_BV) +(set-info :status sat) +(declare-const x (_ BitVec 4)) +(declare-const y (_ BitVec 4)) +(assert (not (= (bvugt (bvurem y x) x) (ite (= x #x0) (bvugt y #x0) false)))) +(check-sat) |