refactor(bv): Simplify bv2nat mapping using right shifts#1320
Open
bclement-ocp wants to merge 3 commits intoOCamlPro:nextfrom
Open
refactor(bv): Simplify bv2nat mapping using right shifts#1320bclement-ocp wants to merge 3 commits intoOCamlPro:nextfrom
bclement-ocp wants to merge 3 commits intoOCamlPro:nextfrom
Conversation
08b8ca3 to
bf052b9
Compare
cad7edd to
9bc2300
Compare
And add it to the lockfile, so that the workflows that use a lock file can build (:
To simplify review of the next commit.
The bv2nat mapping is able to record an integer expression for each bit-vector extraction, but we only need to record arithmetic right shifts since we encode an extraction `bv<i, j>` as `(bv asr j) - (bv asr i) * 2^(j - i + 1)`. This ensures we can't accidentally leave bogus extractions in the map.
9bc2300 to
eb35a3a
Compare
Halbaroth
approved these changes
Sep 30, 2025
|
|
||
| (* Add the equality [nat_r = bv2nat(bv_r)]. *) | ||
| let add_bv2nat ~ex nat_r bv_r t = | ||
| match BitvNormalForm.normal_form bv_r with |
Collaborator
There was a problem hiding this comment.
What is the motivation of this change? If I understand well, you replace the normal form of Bitv_rel by the normal form of Bitv?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The bv2nat mapping is able to record an integer expression for each bit-vector extraction, but we only need to record arithmetic right shifts since we encode an extraction
bv<i, j>as(bv asr j) - (bv asr i) * 2^(j - i + 1).This ensures we can't accidentally leave bogus extractions in the map.