Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include "honk_recursion_constraint.hpp"
#include "acir_format.hpp"
#include "acir_format_mocks.hpp"
#include "barretenberg/numeric/uint256/uint256.hpp"
#include "barretenberg/special_public_inputs/special_public_inputs.hpp"
#include "barretenberg/ultra_honk/decider_proving_key.hpp"
#include "barretenberg/ultra_honk/ultra_prover.hpp"
#include "barretenberg/ultra_honk/ultra_verifier.hpp"
#include "proof_surgeon.hpp"
#include <gtest/gtest.h>
#include <vector>
Go to the source code of this file.
Classes | |
class | AcirHonkRecursionConstraint< RecursiveFlavor > |
Typedefs | |
using | Flavors = testing::Types< UltraRecursiveFlavor_< UltraCircuitBuilder >, UltraRollupRecursiveFlavor_< UltraCircuitBuilder >, UltraRecursiveFlavor_< MegaCircuitBuilder >, UltraZKRecursiveFlavor_< UltraCircuitBuilder >, UltraZKRecursiveFlavor_< MegaCircuitBuilder > > |
Functions | |
TYPED_TEST_SUITE (AcirHonkRecursionConstraint, Flavors) | |
TYPED_TEST (AcirHonkRecursionConstraint, TestHonkRecursionConstraintVKGeneration) | |
TYPED_TEST (AcirHonkRecursionConstraint, TestBasicSingleHonkRecursionConstraint) | |
TYPED_TEST (AcirHonkRecursionConstraint, TestBasicDoubleHonkRecursionConstraints) | |
TYPED_TEST (AcirHonkRecursionConstraint, TestOneOuterRecursiveCircuit) | |
TYPED_TEST (AcirHonkRecursionConstraint, TestFullRecursiveComposition) | |
Similar to previous test but one extra node in tree of recursion. | |
Definition at line 232 of file honk_recursion_constraint.test.cpp.
TYPED_TEST | ( | AcirHonkRecursionConstraint | , |
TestBasicDoubleHonkRecursionConstraints | |||
) |
Definition at line 285 of file honk_recursion_constraint.test.cpp.
TYPED_TEST | ( | AcirHonkRecursionConstraint | , |
TestBasicSingleHonkRecursionConstraint | |||
) |
Definition at line 265 of file honk_recursion_constraint.test.cpp.
TYPED_TEST | ( | AcirHonkRecursionConstraint | , |
TestFullRecursiveComposition | |||
) |
Similar to previous test but one extra node in tree of recursion.
Layer 1 is two separate circuits, layer 2 is two circuits, each which verify one circuit of layer 1. The layer 3 circuit verifies both circuits of layer 2.
C ^ | B - B ^ ^ | | A A
===========================
Definition at line 386 of file honk_recursion_constraint.test.cpp.
TYPED_TEST | ( | AcirHonkRecursionConstraint | , |
TestHonkRecursionConstraintVKGeneration | |||
) |
Definition at line 240 of file honk_recursion_constraint.test.cpp.
TYPED_TEST | ( | AcirHonkRecursionConstraint | , |
TestOneOuterRecursiveCircuit | |||
) |
We want to test the following:
A = basic circuit B = circuit that verifies proof of A C = circuit that verifies proof of B and a proof of A
Layer 1 = proof of A Layer 2 = verifies proof of A and proof of B Layer 3 = verifies proof of C
C ^ | | - B ^ ^ | | | -A | - A
===========================
Final aggregation object contains aggregated proofs for 2 instances of A and 1 instance of B
Definition at line 307 of file honk_recursion_constraint.test.cpp.
TYPED_TEST_SUITE | ( | AcirHonkRecursionConstraint | , |
Flavors | |||
) |