Module Make_impl.Prover

type common_prover_pp = {
  1. n : int;
  2. domain : Kzg.Bls.Domain.t;
  3. pp_public_parameters : PP.prover_public_parameters;
  4. g_map : Kzg.Bls.Poly.t SMap.t;
  5. g_prover_aux : Commitment.prover_aux;
  6. evaluations : Identities.Evaluations.t SMap.t;
  7. zk : bool;
  8. nb_of_t_chunks : int;
  9. eval_points : Identities.eval_point list list;
}
val common_prover_pp_t : common_prover_pp Repr.t
type circuit_prover_pp = {
  1. circuit_size : int;
  2. input_com_sizes : int list;
  3. public_input_size : int;
  4. gates : Kzg.Bls.Scalar.t array SMap.t;
  5. tables : Kzg.Bls.Scalar.t array list;
  6. wires : int array array;
  7. permutation : int array;
  8. rc_permutations : int array SMap.t;
  9. evaluations : Identities.Evaluations.t SMap.t;
  10. alpha : Kzg.Bls.Scalar.t option;
  11. ultra : bool;
  12. range_checks : (int * int) list SMap.t;
}
val circuit_prover_pp_t : circuit_prover_pp Repr.t
type public_parameters = {
  1. common_pp : common_prover_pp;
  2. circuits_map : circuit_prover_pp SMap.t;
  3. transcript : Kzg.Utils.Transcript.t;
}
val public_parameters_t : public_parameters Repr.t
val build_all_wires_keys : public_parameters -> int SMap.t -> int -> string list
val build_all_keys_z : public_parameters -> string list
val enforce_wire_values : int array array -> Identities.Evaluations.scalar array -> Identities.Evaluations.t array
val update_wires_with_rc_1 : ?shifts_map:(int * int) Kzg__SMap.t -> public_parameters -> (Kzg.Bls.Poly.t SMap.t * Kzg.Bls.Poly.t Kzg__SMap.t list Kzg__SMap.t * Kzg.Bls.Poly.t SMap.t option list SMap.t * Identities.Evaluations.t Kzg__SMap.t list SMap.t) -> Kzg.Bls.Poly.t SMap.t * Kzg.Bls.Poly.t Kzg__SMap.t list Kzg__SMap.t * Kzg.Bls.Poly.t SMap.t option list SMap.t * Identities.Evaluations.t Kzg__SMap.t list Kzg__SMap.t
val commit_to_wires : ?all_keys:string list -> ?shifts_map:(int * int) Kzg__SMap.t -> public_parameters -> circuit_prover_input list SMap.t -> Identities.Evaluations.t Kzg__SMap.t list Kzg__SMap.t * Kzg.Bls.Poly.t Kzg__SMap.t list Kzg__SMap.t * Kzg.Bls.Poly.t SMap.t option list SMap.t * Kzg.Bls.Poly.t SMap.t * Commitment.t * Commitment.prover_aux
val build_f_map_plook : ?shifts_map:(int * int) Kzg__SMap.t -> public_parameters -> gate_randomness -> Identities.Evaluations.t Plonk.Identities.SMap.t list SMap.t -> Kzg.Bls.Poly.t Kzg__SMap.t
val build_perm_rc2_identities : public_parameters -> gate_randomness -> Identities.prover_identities
val build_gates_plook_rc1_identities : ?shifts_map:(int * int) SMap.t -> public_parameters -> gate_randomness -> circuit_prover_input List.t SMap.t -> Identities.prover_identities
val prove_parameters : pp_prove: (PP.prover_public_parameters -> Kzg.Utils.Transcript.t -> n:int -> generator:Kzg.Bls.Domain.scalar -> secrets:(Kzg.Bls.Poly.t SMap.t * Commitment.prover_aux) list -> eval_points:Identities.eval_point list list -> evaluations:Identities.Evaluations.t Kzg.SMap.t -> identities:Identities.prover_identities -> nb_of_t_chunks:int -> 'a * 'b) -> public_parameters -> inputs_map:circuit_prover_input List.t SMap.t -> 'c * (PP.PC.Commitment.t * Commitment.t * gate_randomness)