46 using ClaimBatch = ClaimBatcher::Batch;
48 const size_t num_public_inputs =
49 static_cast<uint32_t
>(verifier_instance->vk_and_hash->vk->num_public_inputs.get_value());
58 BB_ASSERT_EQ(proof.size(), HONK_PROOF_LENGTH + IPA_PROOF_LENGTH + num_public_inputs);
61 static_cast<std::ptrdiff_t>(HONK_PROOF_LENGTH + num_public_inputs);
62 ipa_proof =
StdlibProof(proof.begin() + honk_proof_with_pub_inputs_length, proof.end());
63 honk_proof =
StdlibProof(proof.begin(), proof.begin() + honk_proof_with_pub_inputs_length);
67 transcript->load_proof(honk_proof);
68 OinkVerifier oink_verifier{ verifier_instance, transcript };
70 const std::vector<FF>& public_inputs = verifier_instance->public_inputs;
72 VerifierCommitments commitments{ verifier_instance->vk_and_hash->vk, verifier_instance->witness_commitments };
75 verifier_instance->gate_challenges =
76 transcript->template get_powers_of_challenge<FF>(
"Sumcheck:gate_challenge", VIRTUAL_LOG_N);
81 std::vector<FF> padding_indicator_array(VIRTUAL_LOG_N, 1);
86 padding_indicator_array =
87 compute_padding_indicator_array<Curve, VIRTUAL_LOG_N>(verifier_instance->vk_and_hash->vk->log_circuit_size);
90 Sumcheck sumcheck(transcript, verifier_instance->alphas, VIRTUAL_LOG_N);
95 libra_commitments[0] = transcript->template receive_from_prover<Commitment>(
"Libra:concatenation_commitment");
98 verifier_instance->relation_parameters, verifier_instance->gate_challenges, padding_indicator_array);
102 libra_commitments[1] = transcript->template receive_from_prover<Commitment>(
"Libra:grand_sum_commitment");
103 libra_commitments[2] = transcript->template receive_from_prover<Commitment>(
"Libra:quotient_commitment");
106 bool consistency_checked =
true;
107 ClaimBatcher claim_batcher{
108 .unshifted = ClaimBatch{ commitments.get_unshifted(), sumcheck_output.
claimed_evaluations.get_unshifted() },
109 .shifted = ClaimBatch{ commitments.get_to_be_shifted(), sumcheck_output.
claimed_evaluations.get_shifted() }
112 Shplemini::compute_batch_opening_claim(padding_indicator_array,
119 &consistency_checked,
123 auto pairing_points = PCS::reduce_verify_batch_opening_claim(opening_claim, transcript);
127 inputs.reconstruct_from_public(public_inputs);