|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include "barretenberg/dsl/acir_format/hypernova_recursion_constraint.hpp"#include "acir_format.hpp"#include "barretenberg/bbapi/bbapi_shared.hpp"#include "barretenberg/chonk/chonk.hpp"#include "barretenberg/chonk/chonk_verifier.hpp"#include "barretenberg/dsl/acir_format/gate_count_constants.hpp"#include "barretenberg/dsl/acir_format/mock_verifier_inputs.hpp"#include "barretenberg/dsl/acir_format/utils.hpp"#include "barretenberg/goblin/mock_circuits.hpp"#include "barretenberg/ultra_honk/prover_instance.hpp"#include "barretenberg/ultra_honk/ultra_prover.hpp"#include "barretenberg/ultra_honk/ultra_verifier.hpp"#include "honk_recursion_constraint.hpp"#include <gtest/gtest.h>#include <vector>Go to the source code of this file.
Classes | |
| class | HypernovaRecursionConstraintTest |
| struct | HypernovaRecursionConstraintTest::KernelGateCounts |
Functions | |
| TEST_F (HypernovaRecursionConstraintTest, MockMergeProofSize) | |
| Check that the size of a mock merge proof matches expectation. | |
| TEST_F (HypernovaRecursionConstraintTest, AccumulateSingleApp) | |
| Test IVC accumulation of a one app and one kernel; The kernel includes a recursive oink verification for the app, specified via an ACIR RecursionConstraint. | |
| TEST_F (HypernovaRecursionConstraintTest, AccumulateTwoApps) | |
| Test IVC accumulation of two apps and two kernels; The first kernel contains a recursive oink verification and the second contains two recursive HN verifications, all specified via ACIR RecursionConstraints. | |
| TEST_F (HypernovaRecursionConstraintTest, GenerateInitKernelVKFromConstraints) | |
| TEST_F (HypernovaRecursionConstraintTest, GenerateInnerKernelVKFromConstraints) | |
| TEST_F (HypernovaRecursionConstraintTest, GenerateResetTailKernelVKFromConstraints) | |
| TEST_F (HypernovaRecursionConstraintTest, GenerateHidingKernelVKFromConstraints) | |
| TEST_F (HypernovaRecursionConstraintTest, RecursiveVerifierAppCircuit) | |
| Test IVC accumulation of a one app and one kernel. The app includes a UltraHonk Recursive Verifier. | |
| TEST_F (HypernovaRecursionConstraintTest, RecursiveVerifierAppCircuitFailure) | |
| Test IVC accumulation of a one app and one kernel. The app includes a UltraHonk Recursive Verifier that verifies an invalid proof. | |
| TEST_F (HypernovaRecursionConstraintTest, InitKernelGateCount) | |
| Pin gate, ECC-row and ultra-op counts for an init kernel verifying 1..MAX_APPS_PER_KERNEL apps. | |
| TEST_F (HypernovaRecursionConstraintTest, InnerKernelGateCount) | |
| Pin gate, ECC-row and ultra-op counts for an inner kernel verifying the previous kernel plus 1..MAX_APPS_PER_KERNEL apps. | |
| TEST_F (HypernovaRecursionConstraintTest, ResetTailKernelGateCount) | |
| Pin gate, ECC-row and ultra-op counts for a reset/tail kernel. | |
| TEST_F (HypernovaRecursionConstraintTest, HidingKernelGateCount) | |
| Pin the hiding kernel gate count, ECC-row and ultra-op usage. The hiding kernel's batch-merge recursive verifier is sized for CHONK_MAX_NUM_CIRCUITS. | |
| TEST_F (HypernovaRecursionConstraintTest, FailsOnConstraintIndicesSizeMismatch) | |
| Test that mismatched constraints/indices sizes are rejected. | |
| TEST_F (HypernovaRecursionConstraintTest, FailsOnAcirQueueSizeMismatch) | |
| Test that ACIR constraints vs IVC queue size mismatch is rejected. | |
| TEST_F (HypernovaRecursionConstraintTest, FailsOnNonEmptyPublicInputs) | |
| Test that non-empty public_inputs in HN constraint is rejected. | |
| TEST_F (HypernovaRecursionConstraintTest, FailsOnProofTypeMismatch) | |
| Test that proof_type mismatch between ACIR and IVC queue is rejected. | |
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| AccumulateSingleApp | |||
| ) |
Test IVC accumulation of a one app and one kernel; The kernel includes a recursive oink verification for the app, specified via an ACIR RecursionConstraint.
Definition at line 414 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| AccumulateTwoApps | |||
| ) |
Test IVC accumulation of two apps and two kernels; The first kernel contains a recursive oink verification and the second contains two recursive HN verifications, all specified via ACIR RecursionConstraints.
Definition at line 440 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| FailsOnAcirQueueSizeMismatch | |||
| ) |
Test that ACIR constraints vs IVC queue size mismatch is rejected.
Definition at line 660 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| FailsOnConstraintIndicesSizeMismatch | |||
| ) |
Test that mismatched constraints/indices sizes are rejected.
Definition at line 642 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| FailsOnNonEmptyPublicInputs | |||
| ) |
Test that non-empty public_inputs in HN constraint is rejected.
Definition at line 679 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| FailsOnProofTypeMismatch | |||
| ) |
Test that proof_type mismatch between ACIR and IVC queue is rejected.
Definition at line 697 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| GenerateHidingKernelVKFromConstraints | |||
| ) |
Definition at line 507 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| GenerateInitKernelVKFromConstraints | |||
| ) |
Definition at line 476 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| GenerateInnerKernelVKFromConstraints | |||
| ) |
Definition at line 487 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| GenerateResetTailKernelVKFromConstraints | |||
| ) |
Definition at line 498 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| HidingKernelGateCount | |||
| ) |
Pin the hiding kernel gate count, ECC-row and ultra-op usage. The hiding kernel's batch-merge recursive verifier is sized for CHONK_MAX_NUM_CIRCUITS.
Definition at line 625 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| InitKernelGateCount | |||
| ) |
Pin gate, ECC-row and ultra-op counts for an init kernel verifying 1..MAX_APPS_PER_KERNEL apps.
Definition at line 577 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| InnerKernelGateCount | |||
| ) |
Pin gate, ECC-row and ultra-op counts for an inner kernel verifying the previous kernel plus 1..MAX_APPS_PER_KERNEL apps.
Definition at line 594 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| MockMergeProofSize | |||
| ) |
Check that the size of a mock merge proof matches expectation.
Definition at line 404 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| RecursiveVerifierAppCircuit | |||
| ) |
Test IVC accumulation of a one app and one kernel. The app includes a UltraHonk Recursive Verifier.
Definition at line 518 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| RecursiveVerifierAppCircuitFailure | |||
| ) |
Test IVC accumulation of a one app and one kernel. The app includes a UltraHonk Recursive Verifier that verifies an invalid proof.
Definition at line 547 of file hypernova_recursion_constraint.test.cpp.
| TEST_F | ( | HypernovaRecursionConstraintTest | , |
| ResetTailKernelGateCount | |||
| ) |
Pin gate, ECC-row and ultra-op counts for a reset/tail kernel.
Definition at line 611 of file hypernova_recursion_constraint.test.cpp.