package tezos-plonk

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Parameters

Signature

include sig ... end
module Domain : sig ... end
module Poly : sig ... end
module Evaluations : sig ... end
module Fr_generation : sig ... end
type prover_public_parameters = Super_PC.Public_parameters.prover
val prover_public_parameters_t : Super_PC.Public_parameters.prover Repr.t
type verifier_public_parameters = Super_PC.Public_parameters.verifier
val verifier_public_parameters_t : Super_PC.Public_parameters.verifier Repr.t
type transcript = Stdlib.Bytes.t
val transcript_t : bytes Repr.t
type proof = {
  1. cm_t : Super_PC.Commitment.t;
  2. pc_proof : Super_PC.proof;
  3. pc_answers : Super_PC.Scalar.t Plonk.SMap.t Plonk.SMap.t list;
}
val proof_t : proof Repr.t
type eval_point =
  1. | X
  2. | GX
  3. | Custom of string * Super_PC.Scalar.t -> Super_PC.Scalar.t
val string_of_eval_point : eval_point -> string
val convert_eval_points : generator:Super_PC.Scalar.t -> x:Super_PC.Scalar.t -> eval_point list -> Super_PC.Scalar.t Plonk.SMap.t
val get_answer : 'a Plonk.SMap.t Plonk.SMap.t -> eval_point -> Plonk.SMap.key -> 'a
val merge_prover_identities : (Evaluations.t Plonk.SMap.t -> Evaluations.t Plonk.SMap.t) list -> prover_identities
val split_t : int -> Poly.t -> int -> Poly.t Plonk.SMap.t
val compute_t : n:int -> alpha:Fr_generation.scalar -> nb_of_t_chunks:int -> Evaluations.t Plonk.SMap.t -> Poly.t Plonk.SMap.t
val prove : Super_PC.Public_parameters.prover -> Stdlib.Bytes.t -> n:int -> generator:Super_PC.Scalar.t -> secrets:(Poly.t Plonk.SMap.t * Super_PC.Commitment.prover_aux) list -> eval_points:eval_point list list -> evaluations:'a -> identities:('a -> Evaluations.t Plonk.SMap.t) -> nb_of_t_chunks:int -> proof * Stdlib.Bytes.t
type pp_commit_to_t_r = Evaluations.t Plonk.SMap.t
val pp_commit_to_t_r_t : Evaluations.t Plonk.SMap.t Repr.ty
val verify_aux : Stdlib.Bytes.t -> Super_PC.Scalar.t -> Super_PC.Commitment.t list -> eval_point list list -> proof -> Fr_generation.scalar * Fr_generation.scalar * Stdlib.Bytes.t * Super_PC.Commitment.t list * Super_PC.Scalar.t Plonk.SMap.t list
val verify : Super_PC.Public_parameters.verifier -> Stdlib.Bytes.t -> n:int -> generator:Super_PC.Scalar.t -> commitments:Super_PC.Commitment.t list -> eval_points:eval_point list list -> ?non_committed: (Fr_generation.scalar -> Super_PC.Scalar.t Plonk.SMap.t Plonk.SMap.t -> Super_PC.Scalar.t Plonk.SMap.t) -> identities: (Fr_generation.scalar -> Super_PC.Scalar.t Plonk.SMap.t Plonk.SMap.t -> Fr_generation.scalar Plonk.SMap.t) -> proof -> bool * Stdlib.Bytes.t
module PC = Super_PC
type prover_aux = {
  1. answers : PC.Scalar.t SMap.t SMap.t list;
  2. batch : PC.Scalar.t SMap.t list;
  3. alpha : PC.Scalar.t;
  4. x : PC.Scalar.t;
  5. r : PC.Scalar.t;
  6. cm_answers : PC.Scalar.t;
}
type verifier_aux = {
  1. alpha : PC.Scalar.t;
  2. x : PC.Scalar.t;
  3. r : PC.Scalar.t;
}
val prove_super_aggregation : {PC}1.Public_parameters.prover -> Stdlib.Bytes.t -> n:int -> generator:{PC}1.Scalar.t -> secrets:(Poly.t Plonk.SMap.t * {PC}1.Commitment.prover_aux) list -> eval_points:eval_point list list -> evaluations:'a -> identities:('b -> Evaluations.t Plonk.SMap.t) -> nb_of_t_chunks:int -> (proof * prover_aux) * Super_PC.transcript
val verify_super_aggregation : Super_PC.Public_parameters.verifier -> Stdlib.Bytes.t -> n:'a -> generator:{PC}1.Scalar.t -> commitments:{PC}1.Commitment.t list -> eval_points:eval_point list list -> s_list:Super_PC.Scalar.t Plonk.SMap.t list -> cm_answers:Super_PC.Scalar.t -> proof -> (bool * verifier_aux) * Super_PC.transcript
val poseidon : Super_PC.Scalar.t array -> Super_PC.Scalar.t