53 if (constraints.size() == 1 && constraints[0].proof_type == oink_type) {
59 if (constraints.size() == 1 && constraints[0].proof_type == pg_type) {
60 ivc->recursive_verifier_native_accum = create_mock_verifier_instance<ClientIVC::Flavor>();
66 if (constraints.size() == 1 && constraints[0].proof_type == pg_tail_type) {
67 ivc->recursive_verifier_native_accum = create_mock_verifier_instance<ClientIVC::Flavor>();
73 if (constraints.size() == 2) {
76 ivc->recursive_verifier_native_accum = create_mock_verifier_instance<ClientIVC::Flavor>();
83 if (constraints.size() == 1 && constraints[0].proof_type == pg_final_type) {
84 ivc->recursive_verifier_native_accum = create_mock_verifier_instance<ClientIVC::Flavor>();
106 if (constraints.size() == 1 && constraints[0].proof_type == oink_type) {
112 if (constraints.size() == 1 && constraints[0].proof_type == pg_type) {
118 if (constraints.size() == 1 && constraints[0].proof_type == pg_tail_type) {
124 if (constraints.size() == 2) {
133 if (constraints.size() == 1 && constraints[0].proof_type == pg_final_type) {
149 const bool is_kernel)
163 std::vector<FF> proof;
168 switch (verification_type) {
169 case ClientIVC::QUEUE_TYPE::OINK:
170 proof = create_mock_oink_proof<Flavor, KernelIO>();
172 case ClientIVC::QUEUE_TYPE::PG:
173 case ClientIVC::QUEUE_TYPE::PG_FINAL:
174 case ClientIVC::QUEUE_TYPE::PG_TAIL:
175 proof = create_mock_pg_proof<Flavor, KernelIO>();
178 throw_or_abort(
"Invalid verification type! Only OINK, PG and PG_FINAL are supported");
180 verification_key = create_mock_honk_vk<Flavor, KernelIO>(dyadic_size, pub_inputs_offset);
183 switch (verification_type) {
184 case ClientIVC::QUEUE_TYPE::OINK:
185 proof = create_mock_oink_proof<Flavor, AppIO>();
187 case ClientIVC::QUEUE_TYPE::PG:
188 proof = create_mock_pg_proof<Flavor, AppIO>();
191 throw_or_abort(
"Invalid verification type! Only OINK, PG and PG_FINAL are supported");
193 verification_key = create_mock_honk_vk<Flavor, AppIO>(dyadic_size, pub_inputs_offset);
208 using FF = IvcType::FF;
209 using MegaVerificationKey = IvcType::MegaVerificationKey;
210 using Flavor = IvcType::Flavor;
216 std::vector<FF> proof;
221 BB_ASSERT_EQ(verification_type == SumcheckClientIVC::QUEUE_TYPE::PG ||
222 verification_type == SumcheckClientIVC::QUEUE_TYPE::PG_TAIL ||
223 verification_type == SumcheckClientIVC::QUEUE_TYPE::PG_FINAL,
227 bool include_fold =
true;
228 proof = create_mock_hyper_nova_proof<Flavor, KernelIO>(include_fold);
230 verification_key = create_mock_honk_vk<Flavor, KernelIO>(dyadic_size, pub_inputs_offset);
233 BB_ASSERT_EQ(verification_type == SumcheckClientIVC::QUEUE_TYPE::OINK ||
234 verification_type == SumcheckClientIVC::QUEUE_TYPE::PG,
238 bool include_fold = !(verification_type == SumcheckClientIVC::QUEUE_TYPE::OINK);
239 proof = create_mock_hyper_nova_proof<Flavor, AppIO>(include_fold);
241 verification_key = create_mock_honk_vk<Flavor, AppIO>(dyadic_size, pub_inputs_offset);
258 ivc->verification_queue.emplace_back(entry);
261 if (type == ClientIVC::QUEUE_TYPE::PG_FINAL) {
262 ivc->decider_proof = acir_format::create_mock_decider_proof<ClientIVC::Flavor>();
264 ivc->num_circuits_accumulated++;
278 const bool is_kernel)
284 ivc->recursive_verifier_native_accum.challenge =
286 ivc->recursive_verifier_native_accum.batched_evaluations = {
FF::zero(),
FF::zero() };
287 ivc->recursive_verifier_native_accum.batched_commitments = { Commitment::one(), Commitment::one() };
290 ivc->verification_queue.emplace_back(entry);
292 if (type == SumcheckClientIVC::QUEUE_TYPE::PG_FINAL) {
293 ivc->pcs_proof = acir_format::create_mock_pcs_proof<SumcheckClientIVC::Flavor>();
295 ivc->num_circuits_accumulated++;
307 std::vector<uint32_t>& key_witness_indices)
312 std::vector<FF> mock_vk_fields = mock_verification_key->to_field_elements();
313 BB_ASSERT_EQ(mock_vk_fields.size(), key_witness_indices.size());
316 for (
auto [witness_idx,
value] :
zip_view(key_witness_indices, mock_vk_fields)) {
#define BB_ASSERT_EQ(actual, expected,...)
Flavor::VerificationKey MegaVerificationKey
uint32_t trace_offset() const
void compute_offsets(bool is_structured)
void set_fixed_block_sizes(const TraceSettings &settings)
size_t get_structured_dyadic_size() const
static constexpr size_t VIRTUAL_LOG_N
static constexpr bool has_zero_row
The IVC scheme used by the aztec client for private function execution.
Flavor::Commitment Commitment
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
MegaTracePublicInputBlock pub_inputs
static constexpr field zero()
void throw_or_abort(std::string const &err)