-
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
Add conditions for generic compress and serialize functions #587
Conversation
I invested a fair amount of time trying to address the slow verification of functions in serialize module. Here is my observation, at some point of verifying stacked operations F* gets overwhelmed and starts to fail to resolve basic arithmetics and the process could take several minutes and may lead to endless loop of reasoning. To make sure a certain function is under threshold and has normal verification process, we have to determine the operations that SMT struggles with the most, such as nested loops or complex arithmetics, and make them opaque by using |
This PR makes generic serialize.rs panic-free by adding the following changes
serialize.rs
and make sure they pass the verification (Keep functions of lower priority marked as lax -compress_then_serialize_5/compress_then_serialize_11
)traits.rs/portable.rs/avx2.rs
vector/portable/compress.rs
(no avx2 proofs are added yet)