50 if (constraints.size() == 1 && constraints[0].proof_type == oink_type) {
56 if (constraints.size() == 1 && constraints[0].proof_type == hn_type) {
62 if (constraints.size() == 1 && constraints[0].proof_type == hn_tail_type) {
66 if (constraints.size() == 2) {
75 if (constraints.size() == 1 && constraints[0].proof_type == hn_final_type) {
92 using IvcType =
Chonk;
93 using FF = IvcType::FF;
94 using MegaVerificationKey = IvcType::MegaVerificationKey;
95 using Flavor = IvcType::Flavor;
97 size_t dyadic_size = 1 << Flavor::VIRTUAL_LOG_N;
98 size_t pub_inputs_offset = Flavor::has_zero_row ? 1 : 0;
101 std::vector<FF> proof;
106 BB_ASSERT_EQ(verification_type == Chonk::QUEUE_TYPE::HN || verification_type == Chonk::QUEUE_TYPE::HN_TAIL ||
107 verification_type == Chonk::QUEUE_TYPE::HN_FINAL,
111 bool include_fold =
true;
112 proof = create_mock_hyper_nova_proof<Flavor, KernelIO>(include_fold);
114 verification_key = create_mock_honk_vk<Flavor, KernelIO>(dyadic_size, pub_inputs_offset);
117 BB_ASSERT_EQ(verification_type == Chonk::QUEUE_TYPE::OINK || verification_type == Chonk::QUEUE_TYPE::HN,
true);
120 bool include_fold = !(verification_type == Chonk::QUEUE_TYPE::OINK);
121 proof = create_mock_hyper_nova_proof<Flavor, AppIO>(include_fold);
123 verification_key = create_mock_honk_vk<Flavor, AppIO>(dyadic_size, pub_inputs_offset);
145 ivc->recursive_verifier_native_accum.non_shifted_evaluation =
FF::zero();
146 ivc->recursive_verifier_native_accum.shifted_evaluation =
FF::zero();
147 ivc->recursive_verifier_native_accum.non_shifted_commitment = Commitment::one();
148 ivc->recursive_verifier_native_accum.shifted_commitment = Commitment::one();
151 ivc->verification_queue.emplace_back(entry);
153 if (
type == Chonk::QUEUE_TYPE::HN_FINAL) {
154 ivc->decider_proof = acir_format::create_mock_pcs_proof<Chonk::Flavor>();
156 ivc->num_circuits_accumulated++;
168 const std::vector<uint32_t>& key_witness_indices)
173 std::vector<FF> mock_vk_fields = mock_verification_key->to_field_elements();
174 BB_ASSERT_EQ(mock_vk_fields.size(), key_witness_indices.size());
177 for (
auto [witness_idx,
value] :
zip_view(key_witness_indices, mock_vk_fields)) {
#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)