Fix (inactive) `MultSlice` rewrite
authorAndres Notzli <andres.noetzli@gmail.com>
Thu, 8 Dec 2016 22:21:28 +0000 (14:21 -0800)
committerAndres Notzli <andres.noetzli@gmail.com>
Fri, 9 Dec 2016 04:12:53 +0000 (20:12 -0800)
commit762c8a3cf028fa7c12c2ee32d8643bd73ff2f07c
treea3535a4fdf9bdaf2564f8efe5bff02deeb5c4ced
parentbe7662bdcd3881d349bfba4c959a0c2be4159ce9
Fix (inactive) `MultSlice` rewrite

The `MultSlice` rewrite was previously accepting multiplications of
three and more variables even though it was designed for multiplications
of two variables only. Fortunately, the rewrite was not actively used in
the bitvector solver. This commit strengthens the condition in
`applies()` and adds a unit test that checks that x * y * z and x * y do
not get rewritten to the same term.
src/theory/bv/theory_bv_rewrite_rules_simplification.h
test/unit/theory/theory_engine_white.h