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

Include Lagrange kernel trace polynomial term into DEEP composition polynomial #274

Merged
merged 9 commits into from
May 9, 2024

Conversation

Al-Kindi-0
Copy link
Contributor

As the title says, this PR includes the missing term(s) in the DEEP composition polynomial related to the Lagrange kernel trace polynomial. A few remarks are in order:

  1. Although we open at $z, z\cdot g, \cdots z\cdot g^{2^{\log(tracelen)-1}}$, we end up having to add only one term to the DEEP composition polynomial. This is because we use a multi-point quotient instead of single point quotients. This comes at a slight degradation of security which should be accounted for (in a future PR) in the security calculator.
  2. During proof generation, the quotient from the previous point is currently computed using a naive polynomial division. This should be benchmarked to see if we might need to use an FFT-based division procedure.
  3. Currently, the code makes an assumption (but doesn't enforce it) that the Lagrange kernel column is always the last one in the auxiliary trace. This makes the code for computing the DEEP polynomial cleaner.
  4. Some TODO's are contingent on Generalize auxiliary trace building #271 .

@Al-Kindi-0
Copy link
Contributor Author

Rebased and updated the code in light of #271

@Al-Kindi-0 Al-Kindi-0 marked this pull request as ready for review May 7, 2024 08:59
Copy link
Collaborator

@irakliyk irakliyk left a comment

Choose a reason for hiding this comment

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

Looks good! Thank you! Not a full review yet - but I left some small comments/questions inline.

Copy link
Collaborator

@irakliyk irakliyk left a comment

Choose a reason for hiding this comment

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

Looks good! Thank you! I left some more small comments inline.

Perhaps the biggest thing is the treatment of auxiliary trace width, related to this, the position of the Lagrange kernel column in the auxiliary trace. Basically, it is not immediately clear to me if we've correctly reduce the auxiliary trace width everywhere. I think the solution here would be to remove the ability to specify Lagrange kernel column index manually (and also handle construction of the Lagrange column within the library) - but this is for a different PR.

Copy link
Collaborator

@irakliyk irakliyk left a comment

Choose a reason for hiding this comment

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

Looks good! Thank you! I left a couple of comments above. I think the main ones are:

  • Move the new division benchmark into the math crate.
  • Create an issue for investigating FFT-based division in the future.

@irakliyk irakliyk merged commit 49dd0e0 into facebook:next May 9, 2024
7 checks passed
irakliyk pushed a commit that referenced this pull request May 9, 2024
irakliyk pushed a commit that referenced this pull request May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants