-
Notifications
You must be signed in to change notification settings - Fork 17
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
Functional correctness for portable encoding commitment #776
Conversation
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.
Only a few nits and questions
I filed AeneasVerif/eurydice#138 for the C failure. Unfortunately, I don't see a workaround for this right now. |
Co-authored-by: Franziskus Kiefer <[email protected]>
625997e
to
ec0a126
Compare
I opened an issue for follow-up improvements: #777 |
@W95Psp I adapted the code and changed the proof accordingly. I have no idea what the build failures with address sanitizer are doing on macos-latest. |
Newer releases of F* now include both z3 4.8.5 and 4.13.3
Seems OK to me, though we should do something about the proofs: already my calc thing is too big for such a small function, now with the asserts that's a bit overwhelming. For Z3, I updated the job to use latest F*, which ships with Z3 4.13.3. |
I experimented a bit with unrolling loops @karthikbhargavan, in branch lf-portable-encoding-commitment-experiment-unroll. Sadly, this doesn't work out of the box, because of subslices. |
This PR still has an ASAN failure on Rust nightly on macos-latest. |
This PR adds a specification and a proof for the serialize function of
simd/portable/encoding/commitment
in ML-DSA.To do so, I had to take split the function in many smaller functions.
Fixes #745.