46 using ClaimBatch = ClaimBatcher::Batch;
48 const size_t num_public_inputs =
static_cast<uint32_t
>(
key->vk_and_hash->vk->num_public_inputs.get_value());
57 BB_ASSERT_EQ(proof.size(), HONK_PROOF_LENGTH + IPA_PROOF_LENGTH + num_public_inputs);
60 static_cast<std::ptrdiff_t>(HONK_PROOF_LENGTH + num_public_inputs);
61 ipa_proof =
StdlibProof(proof.begin() + honk_proof_with_pub_inputs_length, proof.end());
62 honk_proof =
StdlibProof(proof.begin(), proof.begin() + honk_proof_with_pub_inputs_length);
66 transcript->load_proof(honk_proof);
68 oink_verifier.verify();
69 const std::vector<FF>& public_inputs =
key->public_inputs;
71 VerifierCommitments commitments{
key->vk_and_hash->vk,
key->witness_commitments };
74 key->gate_challenges = transcript->template get_powers_of_challenge<FF>(
"Sumcheck:gate_challenge", VIRTUAL_LOG_N);
79 std::vector<FF> padding_indicator_array(VIRTUAL_LOG_N, 1);
84 padding_indicator_array =
85 compute_padding_indicator_array<Curve, VIRTUAL_LOG_N>(
key->vk_and_hash->vk->log_circuit_size);
88 Sumcheck sumcheck(transcript,
key->alphas, VIRTUAL_LOG_N);
93 libra_commitments[0] = transcript->template receive_from_prover<Commitment>(
"Libra:concatenation_commitment");
96 sumcheck.verify(
key->relation_parameters,
key->gate_challenges, padding_indicator_array);
100 libra_commitments[1] = transcript->template receive_from_prover<Commitment>(
"Libra:grand_sum_commitment");
101 libra_commitments[2] = transcript->template receive_from_prover<Commitment>(
"Libra:quotient_commitment");
104 bool consistency_checked =
true;
105 ClaimBatcher claim_batcher{
106 .unshifted = ClaimBatch{ commitments.get_unshifted(), sumcheck_output.
claimed_evaluations.get_unshifted() },
107 .shifted = ClaimBatch{ commitments.get_to_be_shifted(), sumcheck_output.
claimed_evaluations.get_shifted() }
110 Shplemini::compute_batch_opening_claim(padding_indicator_array,
117 &consistency_checked,
121 auto pairing_points = PCS::reduce_verify_batch_opening_claim(opening_claim, transcript);
125 inputs.reconstruct_from_public(public_inputs);