21 const std::shared_ptr<Transcript>& transcript)
22 : transcript(transcript)
27 size_t max_dyadic_size =
std::max(accumulator_claim->dyadic_size, instance_claim->dyadic_size);
28 polynomials.w_non_shifted_accumulator = accumulator_claim->non_shifted_polynomial;
29 polynomials.w_shifted_accumulator = accumulator_claim->shifted_polynomial.shifted();
30 polynomials.w_non_shifted_instance = instance_claim->non_shifted_polynomial;
31 polynomials.w_shifted_instance = instance_claim->shifted_polynomial.shifted();
32 polynomials.w_evaluations_accumulator =
34 polynomials.w_evaluations_instance =
37 polynomials.increase_polynomials_virtual_size(virtual_circuit_size);
38 std::vector<FF> accumulator_evaluations = { accumulator_claim->non_shifted_evaluation,
39 accumulator_claim->shifted_evaluation };
40 std::vector<FF> instance_evaluations = { instance_claim->non_shifted_evaluation,
41 instance_claim->shifted_evaluation };
43 accumulator_claim->challenge,
44 instance_claim->challenge,
45 accumulator_evaluations,
47 accumulator_claim->non_shifted_commitment,
48 accumulator_claim->shifted_commitment,
49 instance_claim->non_shifted_commitment,
50 instance_claim->shifted_commitment,
51 accumulator_claim->shifted_polynomial,
52 instance_claim->shifted_polynomial);
53 key->proving_key->circuit_size = max_dyadic_size;
106 auto claim_batching_challenge =
transcript->get_challenge<
FF>(
"claim_batching_challenge");
109 auto new_non_shifted_polynomial =
Polynomial(
key->proving_key->circuit_size);
110 new_non_shifted_polynomial +=
key->proving_key->polynomials.w_non_shifted_instance;
111 new_non_shifted_polynomial.add_scaled(
key->proving_key->polynomials.w_non_shifted_accumulator,
112 claim_batching_challenge);
115 new_shifted_polynomial +=
key->preshifted_instance;
116 new_shifted_polynomial.add_scaled(
key->preshifted_accumulator, claim_batching_challenge);
119 auto new_non_shifted_commitment =
120 key->non_shifted_instance_commitment +
key->non_shifted_accumulator_commitment * claim_batching_challenge;
121 auto new_shifted_commitment =
122 key->shifted_instance_commitment +
key->shifted_accumulator_commitment * claim_batching_challenge;
125 FF new_non_shifted_evaluation =
127 sumcheck_output.claimed_evaluations.w_non_shifted_accumulator * claim_batching_challenge;
128 FF new_shifted_evaluation =
sumcheck_output.claimed_evaluations.w_shifted_instance +
129 sumcheck_output.claimed_evaluations.w_shifted_accumulator * claim_batching_challenge;
132 .non_shifted_evaluation = new_non_shifted_evaluation,
133 .shifted_evaluation = new_shifted_evaluation,
134 .non_shifted_polynomial = new_non_shifted_polynomial,
135 .shifted_polynomial = new_shifted_polynomial,
136 .non_shifted_commitment = new_non_shifted_commitment,
137 .shifted_commitment = new_shifted_commitment,
138 .dyadic_size =
key->proving_key->circuit_size
static Polynomial< FF > construct(std::span< const FF > challenges, size_t log_num_monomials)
Construct eq(X, r) coefficient table over Boolean hypercube {0,1}^d.