Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
HypernovaFoldingVerifierTests Class Reference
Inheritance diagram for HypernovaFoldingVerifierTests:

Public Types

enum class  TamperingMode : uint8_t { None , Instance }
 
using KernelFlavor = bb::MegaKernelFlavor
 
using KernelRecursiveFlavor = bb::MegaKernelRecursiveFlavor
 
using AppFlavor = bb::MegaAppFlavor
 
using AppRecursiveFlavor = bb::MegaAppRecursiveFlavor
 
using Builder = KernelRecursiveFlavor::CircuitBuilder
 
using FF = KernelFlavor::FF
 
using FoldingProver = bb::HypernovaFoldingProver
 
using ProverAccumulator = FoldingProver::Accumulator
 
using NativeVerifier = bb::HypernovaFoldingNativeVerifier
 
using RecursiveVerifier = bb::HypernovaFoldingRecursiveVerifier
 
using NativeVerifierAccumulator = NativeVerifier::Accumulator
 
using NativeTranscript = NativeVerifier::Transcript
 
using RecursiveTranscript = RecursiveVerifier::Transcript
 

Public Member Functions

template<typename Flavor >
void expect_folding_manifest ()
 Drive a "previous accumulator + one instance" folding session through the native verifier with manifest tracking enabled, and assert the transcript matches the expected manifest. Flavor-general (kernel and app).
 

Static Public Member Functions

template<typename Flavor >
static std::shared_ptr< ProverInstance_< Flavor > > generate_instance (size_t log_num_gates=LOG_NUM_GATES)
 
static bool compare_prover_verifier_accumulators (const ProverAccumulator &lhs, const NativeVerifierAccumulator &rhs)
 
template<typename NativeFlavor , typename RecursiveFlavor >
static std::shared_ptr< VerifierInstance_< RecursiveFlavor > > make_recursive_verifier_instance (Builder *builder, const std::shared_ptr< VerifierInstance_< NativeFlavor > > &native_instance)
 Build a recursive verifier instance from a native one (already populated by the native verifier).
 
template<typename Flavor >
static void tamper_instance (const std::shared_ptr< ProverInstance_< Flavor > > &instance)
 
static ProverAccumulator make_previous_accumulator ()
 Build a valid previous accumulator (a single-instance fold) for the prover and verifiers.
 
static void test_folding (size_t num_instances, bool use_previous_accumulator, TamperingMode mode)
 Fold num_instances kernel instances with the prover, then verify the group natively and recursively.
 

Static Public Attributes

static constexpr size_t LOG_NUM_GATES = 4
 

Static Protected Member Functions

static void SetUpTestSuite ()
 

Detailed Description

Definition at line 128 of file hypernova_verifier.test.cpp.

Member Typedef Documentation

◆ AppFlavor

◆ AppRecursiveFlavor

◆ Builder

◆ FF

◆ FoldingProver

◆ KernelFlavor

◆ KernelRecursiveFlavor

◆ NativeTranscript

◆ NativeVerifier

◆ NativeVerifierAccumulator

◆ ProverAccumulator

◆ RecursiveTranscript

◆ RecursiveVerifier

Member Enumeration Documentation

◆ TamperingMode

enum class HypernovaFoldingVerifierTests::TamperingMode : uint8_t
strong
Enumerator
None 
Instance 

Definition at line 150 of file hypernova_verifier.test.cpp.

Member Function Documentation

◆ compare_prover_verifier_accumulators()

static bool HypernovaFoldingVerifierTests::compare_prover_verifier_accumulators ( const ProverAccumulator lhs,
const NativeVerifierAccumulator rhs 
)
inlinestatic

Definition at line 162 of file hypernova_verifier.test.cpp.

◆ expect_folding_manifest()

template<typename Flavor >
void HypernovaFoldingVerifierTests::expect_folding_manifest ( )
inline

Drive a "previous accumulator + one instance" folding session through the native verifier with manifest tracking enabled, and assert the transcript matches the expected manifest. Flavor-general (kernel and app).

Definition at line 367 of file hypernova_verifier.test.cpp.

◆ generate_instance()

template<typename Flavor >
static std::shared_ptr< ProverInstance_< Flavor > > HypernovaFoldingVerifierTests::generate_instance ( size_t  log_num_gates = LOG_NUM_GATES)
inlinestatic

Definition at line 153 of file hypernova_verifier.test.cpp.

◆ make_previous_accumulator()

static ProverAccumulator HypernovaFoldingVerifierTests::make_previous_accumulator ( )
inlinestatic

Build a valid previous accumulator (a single-instance fold) for the prover and verifiers.

Definition at line 256 of file hypernova_verifier.test.cpp.

◆ make_recursive_verifier_instance()

template<typename NativeFlavor , typename RecursiveFlavor >
static std::shared_ptr< VerifierInstance_< RecursiveFlavor > > HypernovaFoldingVerifierTests::make_recursive_verifier_instance ( Builder builder,
const std::shared_ptr< VerifierInstance_< NativeFlavor > > &  native_instance 
)
inlinestatic

Build a recursive verifier instance from a native one (already populated by the native verifier).

Definition at line 193 of file hypernova_verifier.test.cpp.

◆ SetUpTestSuite()

static void HypernovaFoldingVerifierTests::SetUpTestSuite ( )
inlinestaticprotected

Definition at line 130 of file hypernova_verifier.test.cpp.

◆ tamper_instance()

template<typename Flavor >
static void HypernovaFoldingVerifierTests::tamper_instance ( const std::shared_ptr< ProverInstance_< Flavor > > &  instance)
inlinestatic

Definition at line 241 of file hypernova_verifier.test.cpp.

◆ test_folding()

static void HypernovaFoldingVerifierTests::test_folding ( size_t  num_instances,
bool  use_previous_accumulator,
TamperingMode  mode 
)
inlinestatic

Fold num_instances kernel instances with the prover, then verify the group natively and recursively.

Parameters
use_previous_accumulatorwhether to start from a (valid) previous accumulator.
modewhether to tamper the last instance.

Definition at line 270 of file hypernova_verifier.test.cpp.

Member Data Documentation

◆ LOG_NUM_GATES

constexpr size_t HypernovaFoldingVerifierTests::LOG_NUM_GATES = 4
staticconstexpr

Definition at line 148 of file hypernova_verifier.test.cpp.


The documentation for this class was generated from the following file: