package tezos-plonk

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type prover_common_pp = {
  1. n : int;
  2. domain : Domain.t;
  3. pp_public_parameters : PP.prover_public_parameters;
  4. g_map : PP.PC.Polynomial.Polynomial.t SMap.t;
  5. g_prover_aux : PP.PC.Commitment.prover_aux;
  6. evaluations : Evaluations.t SMap.t;
  7. zk : bool;
  8. nb_of_t_chunks : int;
}
val prover_common_pp_t : prover_common_pp Repr.t
val get_generator : prover_common_pp -> Domain.scalar
type prover_circuit_pp = {
  1. circuit_size : int;
  2. nb_wires : int;
  3. gates : Scalar.t array SMap.t;
  4. tables : Scalar.t array list;
  5. wires : int array SMap.t;
  6. permutation : int array;
  7. evaluations : Evaluations.t SMap.t;
  8. alpha : Scalar.t option;
  9. ultra : bool;
}
val prover_circuit_pp_t : prover_circuit_pp Repr.t
val enforce_wire_values : int array SMap.t -> 'a array -> 'a array SMap.t
val compute_wire_polynomials : zero_knowledge:bool -> gates:'a Plonk.SMap.t -> int -> Evaluations.domain -> PP.PC.Scalar.t array SMap.t -> Poly.t SMap.t * Poly.t SMap.t option
type wires_info = {
  1. wires : Scalar.t array SMap.t;
  2. f_wires_map : Evaluations.polynomial SMap.t;
  3. f_blinds_map : Evaluations.polynomial SMap.t option;
  4. wires_values : Scalar.t array;
  5. wires_indices : int array SMap.t;
}
val build_wires_map : zero_knowledge:bool -> prover_common_pp -> prover_circuit_pp SMap.t -> SMap.key -> circuit_prover_input list -> Poly.t SMap.t list * wires_info list
val build_all_f_wires_map : zero_knowledge:bool -> prover_common_pp -> prover_circuit_pp SMap.t -> circuit_prover_input list SMap.t -> Poly.t SMap.t list SMap.t * wires_info list SMap.t
val build_aggregated_wires_map : zero_knowledge:bool -> Poly.scalar -> prover_common_pp -> prover_circuit_pp SMap.t -> wires_info list SMap.t -> SMap.key -> Evaluations.t -> Poly.t SMap.t
val build_all_aggregated_wires_map : zero_knowledge:bool -> Poly.scalar -> prover_common_pp -> prover_circuit_pp SMap.t -> Poly.t SMap.t list SMap.t -> wires_info list SMap.t -> Evaluations.t SMap.t -> Poly.t SMap.t SMap.t
val build_batched_witness : PP.PC.Scalar.t -> wires_info list -> Evaluations.t
val build_f_map_evaluation_perm : zero_knowledge:bool -> prover_common_pp -> PP.PC.Scalar.t -> Perm.PP.PC.Scalar.t -> Perm.PP.PC.Scalar.t -> prover_circuit_pp SMap.t -> SMap.key -> wires_info list -> Poly.t SMap.t * Evaluations.t
val build_all_f_map_evaluation_perm : zero_knowledge:bool -> prover_common_pp -> PP.PC.Scalar.t -> Perm.PP.PC.Scalar.t -> Perm.PP.PC.Scalar.t -> prover_circuit_pp SMap.t -> wires_info list SMap.t -> (Poly.t SMap.t * Evaluations.t) SMap.t
val build_f_map_evaluation_plook : zero_knowledge:bool -> prover_common_pp -> Plook.PP.PC.Scalar.t -> Plook.PP.PC.Scalar.t -> prover_circuit_pp SMap.t -> SMap.key -> wires_info list -> Poly.t SMap.t list
val build_all_f_map_evaluation_plook : zero_knowledge:bool -> prover_common_pp -> Plook.PP.PC.Scalar.t -> Plook.PP.PC.Scalar.t -> prover_circuit_pp SMap.t -> wires_info list SMap.t -> Poly.t SMap.t list SMap.t
val gather_maps : ?shifts_map:(int * int) SMap.t -> 'a Plonk__SMap.t Plonk.List.t SMap.t -> 'a SMap.t
val gather_maps_perm : 'a Plonk__SMap.t SMap.t -> 'a SMap.t
val build_all_keys : string list -> ('a * int) SMap.t -> SMap.key list
val commit_to_wires : ?shifts_map:(int * int) SMap.t -> zero_knowledge:bool -> common_pp:prover_common_pp -> circuits_map:prover_circuit_pp SMap.t -> inputs_map:circuit_prover_input list SMap.t -> unit -> wires_info list SMap.t * PP.PC.Commitment.t * PP.PC.Commitment.prover_aux * Poly.t SMap.t list SMap.t * Poly.t SMap.t
val build_identities : ?shifts_map:(int * int) SMap.t -> (prover_common_pp * prover_circuit_pp SMap.t) -> f_wires_map_list_map: Plook.PP.PC.Polynomial.Polynomial.t Plonk.SMap.t Plonk.List.t SMap.t -> f_plook_map_list_map: Plook.PP.PC.Polynomial.Polynomial.t Plonk.SMap.t Plonk.List.t SMap.t -> inputs_map:circuit_prover_input list SMap.t -> beta_plookup:Plook.PP.PC.Scalar.t -> gamma_plookup:Plook.PP.PC.Scalar.t -> PP.prover_identities
val prove_circuits : pp_prove: (PP.prover_public_parameters -> bytes -> n:int -> generator:Domain.scalar -> secrets: (PP.PC.Polynomial.Polynomial.t SMap.t * PP.PC.Commitment.prover_aux) list -> eval_points:PP.eval_point list list -> evaluations:Evaluations.t SMap.t -> identities:PP.prover_identities -> nb_of_t_chunks:int -> 'a * 'b) -> ((prover_common_pp * prover_circuit_pp SMap.t) * bytes) -> inputs_map:circuit_prover_input list SMap.t -> 'a * (PP.PC.Commitment.t * PP.PC.Commitment.t * Fr_generation.scalar * Fr_generation.scalar * Fr_generation.scalar)
type prover_public_parameters = {
  1. common_pp : prover_common_pp;
  2. circuits_map : prover_circuit_pp SMap.t;
  3. transcript : PP.transcript;
}
val prover_public_parameters_t : prover_public_parameters Repr.t