45 using ClaimBatch = ClaimBatcher::Batch;
47 VerifierCommitments commitments{ accumulator->vk, accumulator->witness_commitments };
49 const size_t log_circuit_size =
static_cast<size_t>(accumulator->vk->log_circuit_size);
53 std::vector<FF> padding_indicator_array(virtual_log_n, 1);
55 for (
size_t idx = 0; idx < virtual_log_n; idx++) {
56 padding_indicator_array[idx] = (idx < log_circuit_size) ?
FF{ 1 } :
FF{ 0 };
64 libra_commitments[0] = transcript->template receive_from_prover<Commitment>(
"Libra:concatenation_commitment");
67 sumcheck.
verify(accumulator->relation_parameters, accumulator->gate_challenges, padding_indicator_array);
71 libra_commitments[1] = transcript->template receive_from_prover<Commitment>(
"Libra:grand_sum_commitment");
72 libra_commitments[2] = transcript->template receive_from_prover<Commitment>(
"Libra:quotient_commitment");
75 bool consistency_checked =
true;
76 ClaimBatcher claim_batcher{
77 .unshifted = ClaimBatch{ commitments.get_unshifted(), sumcheck_output.
claimed_evaluations.get_unshifted() },
78 .shifted = ClaimBatch{ commitments.get_to_be_shifted(), sumcheck_output.
claimed_evaluations.get_shifted() }
81 Shplemini::compute_batch_opening_claim(padding_indicator_array,
92 const auto pairing_points = PCS::reduce_verify_batch_opening_claim(opening_claim, transcript);
94 return Output{ sumcheck_output.
verified, consistency_checked, { pairing_points[0], pairing_points[1] } };
SumcheckOutput< Flavor > verify(const bb::RelationParameters< FF > &relation_parameters, std::vector< FF > &gate_challenges, const std::vector< FF > &padding_indicator_array)
Extract round univariate, check sum, generate challenge, compute next target sum.....