Struct ark_marlin::ahp::AHPForR1CS [−][src]
pub struct AHPForR1CS<F: Field> { /* fields omitted */ }
Expand description
The algebraic holographic proof defined in CHMMVW19. Currently, this AHP only supports inputs of size one less than a power of 2 (i.e., of the form 2^n - 1).
Implementations
pub fn prover_init<'a, C: ConstraintSynthesizer<F>>(
index: &'a Index<F>,
c: C
) -> Result<ProverState<'a, F>, Error>
[src]
pub fn prover_init<'a, C: ConstraintSynthesizer<F>>(
index: &'a Index<F>,
c: C
) -> Result<ProverState<'a, F>, Error>
[src]Initialize the AHP prover.
pub fn prover_first_round<'a, R: RngCore>(
state: ProverState<'a, F>,
rng: &mut R
) -> Result<(ProverMsg<F>, ProverFirstOracles<F>, ProverState<'a, F>), Error>
[src]
pub fn prover_first_round<'a, R: RngCore>(
state: ProverState<'a, F>,
rng: &mut R
) -> Result<(ProverMsg<F>, ProverFirstOracles<F>, ProverState<'a, F>), Error>
[src]Output the first round message and the next state.
Output the number of oracles sent by the prover in the first round.
Output the degree bounds of oracles in the first round.
pub fn prover_second_round<'a, R: RngCore>(
ver_message: &VerifierFirstMsg<F>,
state: ProverState<'a, F>,
_r: &mut R
) -> (ProverMsg<F>, ProverSecondOracles<F>, ProverState<'a, F>)
[src]
pub fn prover_second_round<'a, R: RngCore>(
ver_message: &VerifierFirstMsg<F>,
state: ProverState<'a, F>,
_r: &mut R
) -> (ProverMsg<F>, ProverSecondOracles<F>, ProverState<'a, F>)
[src]Output the second round message and the next state.
Output the number of oracles sent by the prover in the second round.
Output the degree bounds of oracles in the second round.
pub fn prover_third_round<'a, R: RngCore>(
ver_message: &VerifierSecondMsg<F>,
prover_state: ProverState<'a, F>,
_r: &mut R
) -> Result<(ProverMsg<F>, ProverThirdOracles<F>), Error>
[src]
pub fn prover_third_round<'a, R: RngCore>(
ver_message: &VerifierSecondMsg<F>,
prover_state: ProverState<'a, F>,
_r: &mut R
) -> Result<(ProverMsg<F>, ProverThirdOracles<F>), Error>
[src]Output the third round message and the next state.
Output the number of oracles sent by the prover in the third round.
pub fn verifier_first_round<R: RngCore>(
index_info: IndexInfo<F>,
rng: &mut R
) -> Result<(VerifierFirstMsg<F>, VerifierState<F>), Error>
[src]
pub fn verifier_first_round<R: RngCore>(
index_info: IndexInfo<F>,
rng: &mut R
) -> Result<(VerifierFirstMsg<F>, VerifierState<F>), Error>
[src]Output the first message and next round state.
pub fn verifier_second_round<R: RngCore>(
state: VerifierState<F>,
rng: &mut R
) -> (VerifierSecondMsg<F>, VerifierState<F>)
[src]
pub fn verifier_second_round<R: RngCore>(
state: VerifierState<F>,
rng: &mut R
) -> (VerifierSecondMsg<F>, VerifierState<F>)
[src]Output the second message and next round state.
pub fn verifier_third_round<R: RngCore>(
state: VerifierState<F>,
rng: &mut R
) -> VerifierState<F>
[src]
pub fn verifier_third_round<R: RngCore>(
state: VerifierState<F>,
rng: &mut R
) -> VerifierState<F>
[src]Output the third message and next round state.
pub fn verifier_query_set<'a, R: RngCore>(
state: VerifierState<F>,
_: &'a mut R
) -> (QuerySet<F>, VerifierState<F>)
[src]
pub fn verifier_query_set<'a, R: RngCore>(
state: VerifierState<F>,
_: &'a mut R
) -> (QuerySet<F>, VerifierState<F>)
[src]Output the query state and next round state.
The labels for the polynomials output by the AHP indexer.
The labels for the polynomials output by the AHP prover.
THe linear combinations that are statically known to evaluate to zero.
Check that the (formatted) public input is of the form 2^n for some integer n.
Check that the (formatted) public input is of the form 2^n for some integer n.
The maximum degree of polynomials produced by the indexer and prover of this protocol. The number of the variables must include the “one” variable. That is, it must be with respect to the number of formatted public inputs.
Get all the strict degree bounds enforced in the AHP.
pub fn construct_linear_combinations<E>(
public_input: &[F],
evals: &E,
state: &VerifierState<F>
) -> Result<Vec<LinearCombination<F>>, Error> where
E: EvaluationsProvider<F>,
[src]
pub fn construct_linear_combinations<E>(
public_input: &[F],
evals: &E,
state: &VerifierState<F>
) -> Result<Vec<LinearCombination<F>>, Error> where
E: EvaluationsProvider<F>,
[src]Construct the linear combinations that are checked by the AHP.
Auto Trait Implementations
impl<F> RefUnwindSafe for AHPForR1CS<F> where
F: RefUnwindSafe,
impl<F> Send for AHPForR1CS<F>
impl<F> Sync for AHPForR1CS<F>
impl<F> Unpin for AHPForR1CS<F> where
F: Unpin,
impl<F> UnwindSafe for AHPForR1CS<F> where
F: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
type Output = T
type Output = T
Should always be Self
pub fn vzip(self) -> V