Ensure bv2nat and int2bv are not rewritten when using solve-bv-as-int (#6725)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 10 Jun 2021 21:53:38 +0000 (16:53 -0500)
committerGitHub <noreply@github.com>
Thu, 10 Jun 2021 21:53:38 +0000 (21:53 +0000)
commit5fb5d6030aa031d5f63676ec29ffa8e158fa5c6a
tree5d03b8923d08bcdf9c84151c7fab1a4ee4e52fba
parent6394bf6ffa2486587d1726271769117f7dc227a8
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.
src/preprocessing/passes/bv_to_int.cpp
src/smt/set_defaults.cpp
src/theory/bv/theory_bv_rewriter.cpp
test/regress/CMakeLists.txt
test/regress/regress0/bv/bv-int-collapse1.smt2
test/regress/regress0/bv/bv-int-collapse2.smt2
test/regress/regress0/bv/bv2nat-simp-range.smt2
test/regress/regress1/bv/bv2nat-ground.smt2
test/regress/regress1/bv2int-isabelle.smt2 [new file with mode: 0644]
test/regress/regress2/bv_to_int_mask_array_1.smt2