pub struct ProverProof<G: AffineRepr, OpeningProof> {
    pub commitments: ProverCommitments<G>,
    pub proof: OpeningProof,
    pub evals: ProofEvaluations<PointEvaluations<Vec<G::ScalarField>>>,
    pub ft_eval1: G::ScalarField,
    pub prev_challenges: Vec<RecursionChallenge<G>>,
}Expand description
The proof that the prover creates from a
ProverIndex and a witness.
Fields§
§commitments: ProverCommitments<G>All the polynomial commitments required in the proof
proof: OpeningProofbatched commitment opening proof
evals: ProofEvaluations<PointEvaluations<Vec<G::ScalarField>>>Two evaluations over a number of committed polynomials
ft_eval1: G::ScalarFieldRequired evaluation for Maller’s optimization
prev_challenges: Vec<RecursionChallenge<G>>The challenges underlying the optional polynomials folded into the proof
Implementations§
Source§impl<G: KimchiCurve, OpeningProof: OpenProof<G>> ProverProof<G, OpeningProof>where
    G::BaseField: PrimeField,
 
impl<G: KimchiCurve, OpeningProof: OpenProof<G>> ProverProof<G, OpeningProof>where
    G::BaseField: PrimeField,
Sourcepub fn create<EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>, EFrSponge: FrSponge<G::ScalarField>, RNG: RngCore + CryptoRng>(
    groupmap: &G::Map,
    witness: [Vec<G::ScalarField>; 15],
    runtime_tables: &[RuntimeTable<G::ScalarField>],
    index: &ProverIndex<G, OpeningProof>,
    rng: &mut RNG,
) -> Result<Self, ProverError>where
    VerifierIndex<G, OpeningProof>: Clone,
 
pub fn create<EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>, EFrSponge: FrSponge<G::ScalarField>, RNG: RngCore + CryptoRng>(
    groupmap: &G::Map,
    witness: [Vec<G::ScalarField>; 15],
    runtime_tables: &[RuntimeTable<G::ScalarField>],
    index: &ProverIndex<G, OpeningProof>,
    rng: &mut RNG,
) -> Result<Self, ProverError>where
    VerifierIndex<G, OpeningProof>: Clone,
This function constructs prover’s zk-proof from the witness & the ProverIndex against SRS instance
§Errors
Will give error if create_recursive process fails.
Sourcepub fn create_recursive<EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>, EFrSponge: FrSponge<G::ScalarField>, RNG: RngCore + CryptoRng>(
    group_map: &G::Map,
    witness: [Vec<G::ScalarField>; 15],
    runtime_tables: &[RuntimeTable<G::ScalarField>],
    index: &ProverIndex<G, OpeningProof>,
    prev_challenges: Vec<RecursionChallenge<G>>,
    blinders: Option<[Option<PolyComm<G::ScalarField>>; 15]>,
    rng: &mut RNG,
) -> Result<Self, ProverError>where
    VerifierIndex<G, OpeningProof>: Clone,
 
pub fn create_recursive<EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>, EFrSponge: FrSponge<G::ScalarField>, RNG: RngCore + CryptoRng>(
    group_map: &G::Map,
    witness: [Vec<G::ScalarField>; 15],
    runtime_tables: &[RuntimeTable<G::ScalarField>],
    index: &ProverIndex<G, OpeningProof>,
    prev_challenges: Vec<RecursionChallenge<G>>,
    blinders: Option<[Option<PolyComm<G::ScalarField>>; 15]>,
    rng: &mut RNG,
) -> Result<Self, ProverError>where
    VerifierIndex<G, OpeningProof>: Clone,
Source§impl<G: KimchiCurve, OpeningProof: OpenProof<G>> ProverProof<G, OpeningProof>where
    G::BaseField: PrimeField,
 
impl<G: KimchiCurve, OpeningProof: OpenProof<G>> ProverProof<G, OpeningProof>where
    G::BaseField: PrimeField,
Sourcepub fn oracles<EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>, EFrSponge: FrSponge<G::ScalarField>>(
    &self,
    index: &VerifierIndex<G, OpeningProof>,
    public_comm: &PolyComm<G>,
    public_input: Option<&[G::ScalarField]>,
) -> Result<OraclesResult<G, EFqSponge>>
 
pub fn oracles<EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>, EFrSponge: FrSponge<G::ScalarField>>( &self, index: &VerifierIndex<G, OpeningProof>, public_comm: &PolyComm<G>, public_input: Option<&[G::ScalarField]>, ) -> Result<OraclesResult<G, EFqSponge>>
Trait Implementations§
Source§impl<G: Clone + AffineRepr, OpeningProof: Clone> Clone for ProverProof<G, OpeningProof>where
    G::ScalarField: Clone,
 
impl<G: Clone + AffineRepr, OpeningProof: Clone> Clone for ProverProof<G, OpeningProof>where
    G::ScalarField: Clone,
Source§fn clone(&self) -> ProverProof<G, OpeningProof>
 
fn clone(&self) -> ProverProof<G, OpeningProof>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreSource§impl<G: Debug + AffineRepr, OpeningProof: Debug> Debug for ProverProof<G, OpeningProof>where
    G::ScalarField: Debug,
 
impl<G: Debug + AffineRepr, OpeningProof: Debug> Debug for ProverProof<G, OpeningProof>where
    G::ScalarField: Debug,
Source§impl<'de, G, OpeningProof> Deserialize<'de> for ProverProof<G, OpeningProof>where
    OpeningProof: Deserialize<'de>,
    G: CanonicalDeserialize + CanonicalSerialize + AffineRepr,
 
impl<'de, G, OpeningProof> Deserialize<'de> for ProverProof<G, OpeningProof>where
    OpeningProof: Deserialize<'de>,
    G: CanonicalDeserialize + CanonicalSerialize + AffineRepr,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
    __D: Deserializer<'de>,
 
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
    __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<G: PartialEq + AffineRepr, OpeningProof: PartialEq> PartialEq for ProverProof<G, OpeningProof>where
    G::ScalarField: PartialEq,
 
impl<G: PartialEq + AffineRepr, OpeningProof: PartialEq> PartialEq for ProverProof<G, OpeningProof>where
    G::ScalarField: PartialEq,
Source§fn eq(&self, other: &ProverProof<G, OpeningProof>) -> bool
 
fn eq(&self, other: &ProverProof<G, OpeningProof>) -> bool
Tests for 
self and other values to be equal, and is used by ==.Source§impl<G, OpeningProof> Serialize for ProverProof<G, OpeningProof>where
    OpeningProof: Serialize,
    G: CanonicalDeserialize + CanonicalSerialize + AffineRepr,
 
impl<G, OpeningProof> Serialize for ProverProof<G, OpeningProof>where
    OpeningProof: Serialize,
    G: CanonicalDeserialize + CanonicalSerialize + AffineRepr,
impl<G: AffineRepr, OpeningProof> StructuralPartialEq for ProverProof<G, OpeningProof>
Auto Trait Implementations§
impl<G, OpeningProof> Freeze for ProverProof<G, OpeningProof>
impl<G, OpeningProof> RefUnwindSafe for ProverProof<G, OpeningProof>
impl<G, OpeningProof> Send for ProverProof<G, OpeningProof>where
    OpeningProof: Send,
impl<G, OpeningProof> Sync for ProverProof<G, OpeningProof>where
    OpeningProof: Sync,
impl<G, OpeningProof> Unpin for ProverProof<G, OpeningProof>
impl<G, OpeningProof> UnwindSafe for ProverProof<G, OpeningProof>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more