Skip to content

Comments

chore: chonk rec ver 0#20506

Merged
ledwards2225 merged 10 commits intomerge-train/barretenbergfrom
lde/rec-ver-0
Feb 18, 2026
Merged

chore: chonk rec ver 0#20506
ledwards2225 merged 10 commits intomerge-train/barretenbergfrom
lde/rec-ver-0

Conversation

@ledwards2225
Copy link
Contributor

@ledwards2225 ledwards2225 commented Feb 13, 2026

Test improvements for Chonk recursive verifier components:

  • Extended existing targeted UltraHonk recursive verifier failure test framework to Mega, Translator, and ECCVM. Designed to test each unique failure point of the given verifier.
  • Removed Goblin recursive verifier tests that were redundant with standalone ECCVM/Translator tests; kept only the 2 cross-component binding tests (Merge-Translator, ECCVM-Translator)
  • Unified Ultra/Mega recursion tests into a single parameterized suite
  • Unified Ultra/Mega transcript tests into a single parameterized suite

@ledwards2225 ledwards2225 changed the base branch from next to merge-train/barretenberg February 13, 2026 22:17
@ledwards2225 ledwards2225 marked this pull request as ready for review February 17, 2026 15:24

## Overview

SmallSubgroupIPA enables proving statements of the form $ \langle F, G \rangle = s$ where:
Copy link
Contributor Author

Choose a reason for hiding this comment

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

just some formatting fixes to get this to display well

static void handle_edge_cases(const FF& vanishing_poly_eval)
{

// TODO(https://github.com/AztecProtocol/barretenberg/issues/1194). Handle edge cases in PCS
Copy link
Contributor Author

Choose a reason for hiding this comment

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

These are both closed - I think we made the explicit decision that they were not needed

// ============================================================================
// Translator proof structure (always ZK, with interleaved claims)
// ============================================================================
template <typename Flavor> struct TranslatorStructuredProofBase : StructuredProofHelper<Flavor> {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

maybe there's a way to do more code sharing here to reduce line count but didn't seem worth it in the age of claude

RecursiveMergeCommitments recursive_merge_commitments;
};
// TODO(https://github.com/AztecProtocol/barretenberg/issues/1298):
// Better recursion testing - create more flexible proof tampering tests.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm relying on the independent ECCVM/Translator tests for most of the coverage here. Just trying to target things that are particular to the connective tissue of Goblin here

@fcarreiro fcarreiro removed their request for review February 17, 2026 18:28
END
};

static void tamper_eccvm_proof(InnerProver& prover,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

again I explored sharing this code across different contexts but ends up being more complex to do it that way

*/
static void test_recursive_verification_fails()
requires(!IsAnyOf<InnerFlavor, MegaZKFlavor, MegaFlavor>)
enum class TamperType {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Just extending the Ultra testing scheme to Mega

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Killed this bc it was too complicated to have one method for all contexts. Relevant methods are in the suite that use them

Copy link
Contributor

Choose a reason for hiding this comment

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

makes sense!

UltraStarknetZKFlavor,
UltraZKFlavor,
UltraKeccakZKFlavor>;
UltraKeccakZKFlavor,
Copy link
Contributor Author

@ledwards2225 ledwards2225 Feb 17, 2026

Choose a reason for hiding this comment

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

Just combining the Ultra/Mega transcript tests into one suite to reduce a ton of duplication

Copy link
Contributor

@iakovenkos iakovenkos left a comment

Choose a reason for hiding this comment

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

Great work! The tampering tests are finally legible and maintainable

@ledwards2225
Copy link
Contributor Author

Great work! The tampering tests are finally legible and maintainable

Thanks for adding the nice framework in the first place :)

@ledwards2225 ledwards2225 merged commit dbcee78 into merge-train/barretenberg Feb 18, 2026
17 checks passed
@ledwards2225 ledwards2225 deleted the lde/rec-ver-0 branch February 18, 2026 14:21
github-merge-queue bot pushed a commit that referenced this pull request Feb 18, 2026
BEGIN_COMMIT_OVERRIDE
chore: chonk rec ver 0 (#20506)
fix: allocate non-gate selectors at trace-active size instead of dyadic
size (#20600)
chore: numeric audit 0 (#20491)
chore: prepare barretenberg-rs for crates.io publishing (#20496)
chore: add build_bench to ci-barretenberg-full (#20650)
chore: add component graphs for app-proving benchmarks (#20649)
END_COMMIT_OVERRIDE
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.

2 participants