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

Prover/cross-checking among segments of limitless prover #627

Merged

Conversation

Soleimani193
Copy link
Contributor

This PR implements the crosse compiledIOP responsible for cross-checking among segments.

Checklist

  • I wrote new tests for my new core changes.
  • I have successfully ran tests, style checker and build against my new changes locally.
  • I have informed the team of any breaking changes if there are any.

Sorry, something went wrong.

@Soleimani193 Soleimani193 added the Prover Tag to use for all work impacting the prover label Jan 30, 2025
@Soleimani193 Soleimani193 self-assigned this Jan 30, 2025

var rnd []*storedColumnInfo
if (r.byRounds.Len()) != 0 {
rnd = r.byRounds.MustGet(0) // precomputed are always at round zero
Copy link
Contributor

Choose a reason for hiding this comment

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

If it's an assumption, it is best to panic and assume the user is never given the possibility to input a non-zero round number for the store.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

non indeed MustGet gives panic for the empty store. I wanted to prevent this case as the crosse CompiledIOP does not have any column and is tasked to do only some crosse-checks among segments/modules.

Copy link
Contributor

Choose a reason for hiding this comment

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

In that case, it would be cleaner to implement it as:

// This supports the case where the compiled-IOP does not store any column.
if r.byRounds.Len() == 0 {
    return []ifaces.ColID{}
}

That way, the edge-case is explicitly handled and not the main-case


// GetCrossComp generates an (empty) compiledIOP object that is handling the crosse checks
// for example, the global sum over logDerivativeSum is zero.
func GetCrossComp(vRuntimes []*wizard.VerifierRuntime) *wizard.CompiledIOP {
Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, to the idea to construct it as a verifierAction as it is simple and small enough. But the API of the function cannot make sense as is. We will fix this when integrating with the conglomeration that I wrote.

@AlexandreBelling AlexandreBelling changed the title Prover/crosse checking among segments of limitless prover Prover/cross-checking among segments of limitless prover Feb 3, 2025
@Soleimani193 Soleimani193 temporarily deployed to docker-build-and-e2e February 3, 2025 15:55 — with GitHub Actions Inactive
@codecov-commenter
Copy link

codecov-commenter commented Feb 3, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Please upload report for BASE (prover/limitless-top-level@6dc3b08). Learn more about missing BASE report.

Additional details and impacted files
@@                      Coverage Diff                      @@
##             prover/limitless-top-level     #627   +/-   ##
=============================================================
  Coverage                              ?   68.49%           
  Complexity                            ?     1130           
=============================================================
  Files                                 ?      321           
  Lines                                 ?    12842           
  Branches                              ?     1287           
=============================================================
  Hits                                  ?     8796           
  Misses                                ?     3506           
  Partials                              ?      540           
Flag Coverage Δ *Carryforward flag
hardhat 98.74% <ø> (?)
kotlin 66.05% <ø> (?) Carriedforward from e249615

*This pull request uses carry forward flags. Click here to find out more.

@Soleimani193 Soleimani193 merged commit ca2a2d3 into prover/limitless-top-level Feb 3, 2025
6 checks passed
@Soleimani193 Soleimani193 deleted the prover/public-inputs-of-sub-provers branch February 3, 2025 16:38
Soleimani193 added a commit that referenced this pull request Feb 10, 2025
* crosse compiled iop for lpp

* testing for distributed inclusion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Prover Tag to use for all work impacting the prover
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants