Open Halbaroth opened 1 year ago
Some updates here:
bv2nat
and int2bv
is not easy to do properly, because we don't have access to the arithmetic domains from Bitv_rel
Bitv_rel
and to perform interreductions following Sharpening Constraint Programming approaches for
Bit-Vector TheoryI think we can remove the milestone on this issue because we do not plan extra works on it before the next release.
Yes, we won't have constraint simplification for 2.6. Let's keep it to track bv2nat(bvadd)
support.
I wanted to implement support for bv2nat
applied to bvadd
etc. operators but did not find the time — or rather, I have several tentative implementations that need to be rebased and compared to figure out which one to use, which I won't have time to do for this release.
We already have many bv improvements, and these changes only add a small additional improvement for the bv2nat problems from our partners (~ 0.2% more problems solved) so it will have to wait for the next release. I'll try to cut a point release once it is integrated.
I said this but then realised we are not even able to prove that (int2bv (+ (bv2nat x) (bv2nat y))
and (bvadd x y)
are equal currently, so that's annoying. I will make a small patch for that.
Turns out this is somewhat rendered useless by #1228 which at least partially explain why I was seeing so little impact here.
Postponing the remaining tasks here to 2.7
This umbrella issue tracks the progression of the BV theory reasoning. Please add related issue here and what we plan to improve in the future.
bvnot
reasoning, see #800 and #856.bvand
,bvor
,bvxor
, etc (see #944)(bvand (concat a b) (concat c d))
to(concat (bvand a c) (bvand b d))
)bv2nat
andint2bv