Skip to content
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

Document verification status #711

Open
wants to merge 21 commits into
base: dev
Choose a base branch
from
Open

Conversation

karthikbhargavan
Copy link
Contributor

This PR documents the status of various modules in ML-KEM in proofs/verification_status.md. We document any module that
has a TODO or missing proof. This file will be updated over time
as the proofs progress.

@franziskuskiefer franziskuskiefer self-requested a review December 11, 2024 08:59
Copy link
Member

@franziskuskiefer franziskuskiefer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

generally lgtm with a few more comments.


#[inline(always)]
#[hax_lib::fstar::verification_status(lax)]
#[hax_lib::requires(fstar!("(v $COEFFICIENT_BITS == 4 \\/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You didn't want to start using string literal expressions to avoid escaping?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not yet, but yes, this should be done uniformly everywhere.

@@ -42,6 +42,218 @@ fn vec_from_i16_array(array: &[i16]) -> SIMD256Vector {
}
}

#[inline(always)]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These uglyficiations are really unfortunate. We should have a tracking issue somewhere to track getting this fixed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean the pulling out of functions from an impl? Yes, we hope that the opaque extensions PR or a follow up will help with this: hacspec/hax#1134

libcrux-ml-kem/src/polynomial.rs Show resolved Hide resolved

out
}

#[hax_lib::attributes]
impl<Vector: Operations> PolynomialRingElement<Vector> {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we reference an issue why this needs to be so ugly?

# ML-KEM Verification Status

This file keeps track of the current verification status of the modules in the ML-KEM implementation.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's make this into a table. Happy to do something to help. But the list is hard to read.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants