barretenberg
Loading...
Searching...
No Matches
Public Member Functions | List of all members
proof_system::plonk::ProverPlookupWidget< num_roots_cut_out_of_vanishing_polynomial > Class Template Reference
Inheritance diagram for proof_system::plonk::ProverPlookupWidget< num_roots_cut_out_of_vanishing_polynomial >:
proof_system::plonk::ProverRandomWidget

Public Member Functions

 ProverPlookupWidget (proving_key *)
 
 ProverPlookupWidget (const ProverPlookupWidget &other)
 
 ProverPlookupWidget (ProverPlookupWidget &&other)
 
ProverPlookupWidgetoperator= (const ProverPlookupWidget &other)
 
ProverPlookupWidgetoperator= (ProverPlookupWidget &&other)
 
void compute_sorted_list_polynomial (transcript::StandardTranscript &transcript)
 Construct polynomial s and add blinding. Save s in both lagrange and monomial form.
 
void compute_grand_product_polynomial (transcript::StandardTranscript &transcript)
 Compute the blinded lookup grand product polynomial Z_lookup(X)
 
void compute_round_commitments (transcript::StandardTranscript &transcript, const size_t round_number, work_queue &queue) override
 Compute commitments and FFTs of 's' (round_number == 2) or 'Z_lookup' (round_number == 3)
 
barretenberg::fr compute_quotient_contribution (const barretenberg::fr &alpha_base, const transcript::StandardTranscript &transcript) override
 Add contibution of z_lookup grand product terms to the quotient polynomial.
 
- Public Member Functions inherited from proof_system::plonk::ProverRandomWidget
 ProverRandomWidget (proving_key *input_key)
 
 ProverRandomWidget (const ProverRandomWidget &other)
 
 ProverRandomWidget (ProverRandomWidget &&other)
 
ProverRandomWidgetoperator= (const ProverRandomWidget &other)
 
ProverRandomWidgetoperator= (ProverRandomWidget &&other)
 
virtual void compute_round_commitments (transcript::StandardTranscript &, const size_t, work_queue &)
 
virtual barretenberg::fr compute_quotient_contribution (const barretenberg::fr &alpha_base, const transcript::StandardTranscript &transcript)=0
 

Additional Inherited Members

- Public Attributes inherited from proof_system::plonk::ProverRandomWidget
proving_keykey
 
- Protected Types inherited from proof_system::plonk::ProverRandomWidget
typedef barretenberg::fr fr
 
typedef barretenberg::polynomial polynomial
 

Member Function Documentation

◆ compute_grand_product_polynomial()

template<const size_t num_roots_cut_out_of_vanishing_polynomial>
void proof_system::plonk::ProverPlookupWidget< num_roots_cut_out_of_vanishing_polynomial >::compute_grand_product_polynomial ( transcript::StandardTranscript transcript)
inline

Compute the blinded lookup grand product polynomial Z_lookup(X)

Template Parameters
num_roots_cut_out_of_vanishing_polynomial
Parameters
transcript

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>
barretenberg::fr proof_system::plonk::ProverPlookupWidget< num_roots_cut_out_of_vanishing_polynomial >::compute_quotient_contribution ( const barretenberg::fr alpha_base,
const transcript::StandardTranscript transcript 
)
inlineoverridevirtual

Add contibution of z_lookup grand product terms to the quotient polynomial.

Template Parameters
num_roots_cut_out_of_vanishing_polynomial
Parameters
alpha_base
transcript
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>
void proof_system::plonk::ProverPlookupWidget< num_roots_cut_out_of_vanishing_polynomial >::compute_round_commitments ( transcript::StandardTranscript transcript,
const size_t  round_number,
work_queue queue 
)
inlineoverridevirtual

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>
void proof_system::plonk::ProverPlookupWidget< num_roots_cut_out_of_vanishing_polynomial >::compute_sorted_list_polynomial ( transcript::StandardTranscript transcript)
inline

Construct polynomial s and add blinding. Save s in both lagrange and monomial form.

Template Parameters
num_roots_cut_out_of_vanishing_polynomial
Parameters
transcript

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: