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.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: bitVec shiftLeft recurrences for bitblasting #4571
feat: bitVec shiftLeft recurrences for bitblasting #4571
Changes from 16 commits
2fde296
b60eb5f
92fefe2
640df34
f1a3738
d87babd
8ddb247
c775f5f
18af03d
f9275e0
b8f8a6e
7d1918b
c22f3a6
c4939d9
51e0c09
f5450ae
fdeecb0
abb6c99
0a6ed69
0da724d
12b4082
0b5b6db
cb2b544
cce9e8f
8009f75
cebfe1b
9a73edf
b5f7a9b
86ff901
38cd01c
5df7d21
0393592
6060574
5651e3b
5981e7d
805d815
f70acdc
c4b9473
5ead5b4
568864f
f76acf9
83d367c
c575ce8
50f34f9
e5f9a2d
d980687
47d51f9
3af6a9d
1517414
67e676c
e0a827f
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this should be too bad. Just prove inductively that
carry i x y false = false
givenx &&& y = 0
.e.g.
comes right after
carry_succ
.Seems easier that the proof in the special case you have to give for this hypothesis later.
should make your life easy, to turn the goal about
x.toNat + y.toNat
into something aboutcarry
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, this is incredibly clean. I've implemented this now. The hint about using
carry
to prove this escaped me!There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can this just be a simp lemma, and then we never prove anything about shifting by a BitVec?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure. I wasn't sure if it should be or not, so I left it as-is.