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

Cache intermediate values for Edwards addition #1808

Merged
merged 5 commits into from
Jan 20, 2024

Conversation

bMacSwigg
Copy link
Contributor

Creates a new "cached" point type, which holds the computed values of (x-y)/2 and (x+y)/2. Addition is then split into the "prep" function to create a cached point, and the "readdition" function to add a point to a cached point. This proves that the combination m1readd(P, m1prep(Q)) is equivalent to the straightforward add function m1add(P,Q).

This file reuses some of the definitions, proofs, etc. from Basic.v, but for annoying Context reasons some of them had to be copied into this file. There's probably a way to share or reuse them, but it didn't seem worth blocking this change on.

This also doesn't prove Proper_cached_to_twisted, which we might want down the line. My straightforward attempt at copying Proper_to_twisted hit a snag, and nothing in this file actually needed to use it, so I left that out.

@andres-erbsen andres-erbsen merged commit 16b3666 into mit-plv:master Jan 20, 2024
39 checks passed
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.

None yet

2 participants