bv2int: bvand translation code move (#5227)
authoryoni206 <yoni206@users.noreply.github.com>
Sat, 10 Oct 2020 01:40:52 +0000 (18:40 -0700)
committerGitHub <noreply@github.com>
Sat, 10 Oct 2020 01:40:52 +0000 (20:40 -0500)
commite6c9674d9a7d2ffd5f4093ddd2db64fb45b470d2
tree75863875672db81c7874d62e1ac29dc14d16bd72
parent290272719d7a773ea681a420dea3632914f6809c
bv2int: bvand translation code move (#5227)

This PR is essentially a code move.
It moves the code that translates bvand from the bv_to_int preprocessing pass to a new class IAndHelper, in the new files nl_iand_utils.{h,cpp}. The goal is to have this code in a place which can be shared between the bv2int preprocessing pass and the iand solver.

Future PRs will:

Optimize this utility
Make use of it in the iand solver
The code in nl_iand_utils.{h,cpp} is almost completely a move from bv_to_int.{h,cpp}. The changes are all minor, and include, e.g., the following changes:

the node manager is no longer a member, and so is the constant 0.
using the oneBitAnd function directly, without a function pointer.
src/CMakeLists.txt
src/preprocessing/passes/bv_to_int.cpp
src/preprocessing/passes/bv_to_int.h
src/theory/arith/nl/iand_solver.cpp
src/theory/arith/nl/iand_table.cpp [new file with mode: 0644]
src/theory/arith/nl/iand_table.h [new file with mode: 0644]