52 if (constraints.size() == 1 && constraint_has_type(constraints[0], Chonk::QUEUE_TYPE::OINK)) {
58 if (constraints.size() == 1 && constraint_has_type(constraints[0], Chonk::QUEUE_TYPE::HN)) {
64 if (constraints.size() == 1 && constraint_has_type(constraints[0], Chonk::QUEUE_TYPE::HN_TAIL)) {
70 if (constraints.size() == 2) {
71 BB_ASSERT(constraint_has_type(constraints[0], Chonk::QUEUE_TYPE::HN),
72 "Inner kernel first constraint must be HN type");
73 BB_ASSERT(constraint_has_type(constraints[1], Chonk::QUEUE_TYPE::HN),
74 "Inner kernel second constraint must be HN type");
81 if (constraints.size() == 1 && constraint_has_type(constraints[0], Chonk::QUEUE_TYPE::HN_FINAL)) {
106 const bool is_kernel)
108 using IvcType =
Chonk;
109 using FF = IvcType::FF;
110 using MegaVerificationKey = IvcType::MegaVerificationKey;
111 using Flavor = IvcType::Flavor;
113 size_t dyadic_size = 1 << Flavor::VIRTUAL_LOG_N;
115 std::vector<FF> proof;
120 BB_ASSERT_EQ(verification_type == Chonk::QUEUE_TYPE::HN || verification_type == Chonk::QUEUE_TYPE::HN_TAIL ||
121 verification_type == Chonk::QUEUE_TYPE::HN_FINAL,
125 constexpr bool include_fold =
true;
126 proof = create_mock_hyper_nova_proof<Flavor, KernelIO>(include_fold);
128 verification_key = create_mock_honk_vk<Flavor, KernelIO>(dyadic_size);
131 BB_ASSERT_EQ(verification_type == Chonk::QUEUE_TYPE::OINK || verification_type == Chonk::QUEUE_TYPE::HN,
true);
134 bool include_fold = (verification_type != Chonk::QUEUE_TYPE::OINK);
135 proof = create_mock_hyper_nova_proof<Flavor, AppIO>(include_fold);
137 verification_key = create_mock_honk_vk<Flavor, AppIO>(dyadic_size);
164 ivc->recursive_verifier_native_accum.non_shifted_evaluation =
FF::zero();
165 ivc->recursive_verifier_native_accum.shifted_evaluation =
FF::zero();
166 ivc->recursive_verifier_native_accum.non_shifted_commitment = Commitment::one();
167 ivc->recursive_verifier_native_accum.shifted_commitment = Commitment::one();
170 ivc->verification_queue.emplace_back(entry);
172 if (
type == Chonk::QUEUE_TYPE::HN_FINAL) {
173 ivc->decider_proof = acir_format::create_mock_pcs_proof<Chonk::Flavor>();
175 ivc->num_circuits_accumulated++;
#define BB_ASSERT(expression,...)
#define BB_ASSERT_EQ(actual, expected,...)
The IVC scheme used by the aztec client for private function execution.
Flavor::Commitment Commitment
QUEUE_TYPE
Proof type determining recursive verification logic in kernel circuits.
static constexpr size_t VIRTUAL_LOG_N
Manages the data that is propagated on the public inputs of an application/function circuit.
Manages the data that is propagated on the public inputs of a kernel circuit.
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
DefaultIO< MegaCircuitBuilder > AppIO
The data that is propagated on the public inputs of an application/function circuit.
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static constexpr field zero()
void throw_or_abort(std::string const &err)