@@ -82,8 +82,9 @@ pub mod sonic_pc;
8282pub mod ipa_pc;
8383
8484/// `QuerySet` is the set of queries that are to be made to a set of labeled polynomials/equations
85- /// `p` that have previously been committed to. Each element of a `QuerySet` is a `(label, query)`
86- /// pair, where `label` is the label of a polynomial in `p`, and `query` is the field element
85+ /// `p` that have previously been committed to. Each element of a `QuerySet` is a pair of
86+ /// `(label, (point_label, point))`, where `label` is the label of a polynomial in `p`,
87+ /// `point_label` is the label for the point (e.g., "beta"), and and `point` is the field element
8788/// that `p[label]` is to be queried at.
8889pub type QuerySet < ' a , F > = BTreeSet < ( String , ( String , F ) ) > ;
8990
@@ -114,9 +115,9 @@ pub trait PolynomialCommitment<F: Field>: Sized {
114115 /// open the commitment to produce an evaluation proof.
115116 type CommitterKey : PCCommitterKey ;
116117 /// The verifier key for the scheme; used to check an evaluation proof.
117- type VerifierKey : PCVerifierKey + Default ;
118+ type VerifierKey : PCVerifierKey ;
118119 /// The prepared verifier key for the scheme; used to check an evaluation proof.
119- type PreparedVerifierKey : PCPreparedVerifierKey < Self :: VerifierKey > + Default + Clone ;
120+ type PreparedVerifierKey : PCPreparedVerifierKey < Self :: VerifierKey > + Clone ;
120121 /// The commitment to a polynomial.
121122 type Commitment : PCCommitment + Default ;
122123 /// The prepared commitment to a polynomial.
@@ -445,7 +446,9 @@ pub trait PolynomialCommitment<F: Field>: Sized {
445446 }
446447
447448 /// open but with individual challenges
448- /// By default, we downgrade them to only use the first individual opening challenges
449+ /// the non-individual version `open` should call this method with
450+ /// `opening_challenges = |pow| opening_challenge.pow(&[pow]);`,
451+ /// i.e., the same impl as in MarlinKZG.
449452 fn open_individual_opening_challenges < ' a > (
450453 ck : & Self :: CommitterKey ,
451454 labeled_polynomials : impl IntoIterator < Item = & ' a LabeledPolynomial < F > > ,
@@ -471,7 +474,9 @@ pub trait PolynomialCommitment<F: Field>: Sized {
471474 }
472475
473476 /// check but with individual challenges
474- /// By default, we downgrade them to only use the first individual opening challenges
477+ /// The non-individual version `check` should call this method with
478+ /// `opening_challenges = |pow| opening_challenge.pow(&[pow]);`,
479+ /// i.e., the same impl as in MarlinKZG.
475480 fn check_individual_opening_challenges < ' a > (
476481 vk : & Self :: VerifierKey ,
477482 commitments : impl IntoIterator < Item = & ' a LabeledCommitment < Self :: Commitment > > ,
@@ -496,7 +501,9 @@ pub trait PolynomialCommitment<F: Field>: Sized {
496501 }
497502
498503 /// batch_check but with individual challenges
499- /// By default, we downgrade them to only use the first individual opening challenges
504+ /// The non-individual version `batch_check` should call this method with
505+ /// `opening_challenges = |pow| opening_challenge.pow(&[pow]);`,
506+ /// i.e., the same impl as in MarlinKZG.
500507 fn batch_check_individual_opening_challenges < ' a , R : RngCore > (
501508 vk : & Self :: VerifierKey ,
502509 commitments : impl IntoIterator < Item = & ' a LabeledCommitment < Self :: Commitment > > ,
@@ -521,7 +528,9 @@ pub trait PolynomialCommitment<F: Field>: Sized {
521528 }
522529
523530 /// open_combinations but with individual challenges
524- /// By default, we downgrade them to only use the first individual opening challenges
531+ /// The non-individual version `open_combinations` should call this method with
532+ /// `opening_challenges = |pow| opening_challenge.pow(&[pow]);`,
533+ /// i.e., the same impl as in MarlinKZG.
525534 fn open_combinations_individual_opening_challenges < ' a > (
526535 ck : & Self :: CommitterKey ,
527536 lc_s : impl IntoIterator < Item = & ' a LinearCombination < F > > ,
@@ -549,7 +558,9 @@ pub trait PolynomialCommitment<F: Field>: Sized {
549558 }
550559
551560 /// check_combinations but with individual challenges
552- /// By default, we downgrade them to only use the first individual opening challenges
561+ /// The non-individual version `check_combinations` should call this method with
562+ /// `opening_challenges = |pow| opening_challenge.pow(&[pow]);`,
563+ /// i.e., the same impl as in MarlinKZG.
553564 fn check_combinations_individual_opening_challenges < ' a , R : RngCore > (
554565 vk : & Self :: VerifierKey ,
555566 lc_s : impl IntoIterator < Item = & ' a LinearCombination < F > > ,
@@ -576,7 +587,9 @@ pub trait PolynomialCommitment<F: Field>: Sized {
576587 }
577588
578589 /// batch_open but with individual challenges
579- /// By default, we downgrade them to only use the first individual opening challenges
590+ /// The non-individual version `batch_open` should call this method with
591+ /// `opening_challenges = |pow| opening_challenge.pow(&[pow]);`,
592+ /// i.e., the same impl as in MarlinKZG.
580593 fn batch_open_individual_opening_challenges < ' a > (
581594 ck : & Self :: CommitterKey ,
582595 labeled_polynomials : impl IntoIterator < Item = & ' a LabeledPolynomial < F > > ,
0 commit comments