Conversation
franziskuskiefer
left a comment
There was a problem hiding this comment.
no review, just a few quick high level comments
0dde429 to
a3768df
Compare
|
I have a regression in my proof somewhere, I need to fix that. |
|
I fixed my proof on ML-DSA, but the proof is pretty slow. Now it's going through. Debugging is a bit long, I have to wait for F* to normalize terms before seeing actual errors. I have some ideas to speed up the proof, but I need to investigate more. |
8f106cd to
af26ce9
Compare
43ee877 to
1d6f757
Compare
This is required so that we can have a hax postcondition to `bits` stating it's a non-zero integer.
`core::arch` is actually `core::core_arch` in Rust's `core`.
This commit introduces a new abstraction: functional arrays. This is an abstraction that provides finite maps: this is useful isntead of sequences, as fun arrays extract to `->^` restricted arrows in F*. That's particularly handy for normalization in F*.
This commit introduces a `hax.sh` script, that aims at replacing the python script. The script does a little more: it is fixing up core names into minicore names. The union of modules between our hax `core` model (proof-libs in hax) and minicore is not empty. This is a big issue for F*. The script thus replace references to every core module provided by minicore into a reference to the corresponding minicore module.
Co-authored-by: Franziskus Kiefer <franziskuskiefer@gmail.com>
Co-authored-by: Franziskus Kiefer <franziskuskiefer@gmail.com>
Review re-requested
|
Thanks for you comments Karthik and Franziskus, I addressed the comments and added a comment about the F* tactic. |
bf21952 to
b4ef45a
Compare
|
This looks good. I would like to press merge when CI is happy, so that we can get other PRs in. |
|
@franziskuskiefer shall we merge? |
I left another comment. This PR is pretty messy and impossible to review (5! force pushes). That's why I can't really leave an r+ here. |
This PR adds proofs by normalization for one avx2 serialization function.
Fixes #886.
We'll need to file a follow up for the proof of
serialize_6.What does this PR fixes?
serialize_4Missing:
serialize_6hax.shAlso, in this PR we use
minicorefor proofs.Our F* models of the Rust
corelibrary and the extracted code fromminicoreoverlap, particularly forcore::arch::*.The
minicoreversions offer more accurate and specialized models.Thus, this PR also adds a utility function (see function
fixup-minicoreinhax.sh) that fixes up module names in a given crate: it will make the F* extraction use preferably minicore modules instead of core modules when possible.This utility function is essentially patching files, which is trivial to do with bash. The former python script was essentially running commands.
Thus I rewrote it in bash.
This following hax PRs were created while working on this libcrux PR:
Lemmas hax#1355int!hax#1354f_TryIntohax#1353