◆ compute_grand_product_polynomial()
template<const size_t num_roots_cut_out_of_vanishing_polynomial>
Compute the blinded lookup grand product polynomial Z_lookup(X)
- Template Parameters
-
| num_roots_cut_out_of_vanishing_polynomial | |
- Parameters
-
The lookup grand product polynomial Z_lookup is of the form
∏(1 + β) ⋅ ∏(q_lookup*f_k + γ) ⋅ ∏(t_k + βt_{k+1} + γ(1 + β))
Z_lookup(g^j) = --------------------------------------------------------------— ∏(s_k + βs_{k+1} + γ(1 + β))
where ∏ := ∏_{k<j}. This polynomial is constructed in evaluation form over the course of three steps (descibed in more detail below). Blinding is added by setting the last 3 elements in the lagrange representation to random values. Finally, the monomial coefficient form of Z_lookup is computed via an iFFT.
◆ compute_quotient_contribution()
template<const size_t num_roots_cut_out_of_vanishing_polynomial>
Add contibution of z_lookup grand product terms to the quotient polynomial.
- Template Parameters
-
| num_roots_cut_out_of_vanishing_polynomial | |
- Parameters
-
- Returns
- barretenberg::fr
The terms associated with the z_lookup grand product polynomial that must be added to the quotient polynomial are as follows: z_lookup(X)*[(q_lookup*f + γ) * (t + βt(Xω) + γ(1 + β)) * (1 + β)] ...
- (z_lookup - 1)*αL_1(X) ...
- z_lookup(Xω)*(s + βs(Xω) + γ(1 + β)) ...
- [z_lookup(Xω) - 1/γ(1 + β)^{n-k}]*α²L_1(Xω^k)
These terms attest to the proper construction of Z_lookup. They are analogous to the terms associated with the Standard Plonk grand product polynomial Z that also appear in the quotient polynomial. See the comments there for more details. The contribution of these terms is incorporated into the quotient polynomial via the coset evaluation form (i.e. the evaluation on 4nth roots of unity).
Implements proof_system::plonk::ProverRandomWidget.
◆ compute_round_commitments()
template<const size_t num_roots_cut_out_of_vanishing_polynomial>
Compute commitments and FFTs of 's' (round_number == 2) or 'Z_lookup' (round_number == 3)
- Template Parameters
-
| num_roots_cut_out_of_vanishing_polynomial | |
- Parameters
-
| transcript | |
| round_number | |
| queue | |
Reimplemented from proof_system::plonk::ProverRandomWidget.
◆ compute_sorted_list_polynomial()
template<const size_t num_roots_cut_out_of_vanishing_polynomial>
Construct polynomial s and add blinding. Save s in both lagrange and monomial form.
- Template Parameters
-
| num_roots_cut_out_of_vanishing_polynomial | |
- Parameters
-
Polynomial 's' is the sorted concatenation of witness values and lookup table values. It is constructed as s = s_1 + η*s_2 + η²*s_3 + η³*s_4. Blinding is added by setting the last 3 elements in the lagrange representation to random values.
The documentation for this class was generated from the following files: