Module Main_protocol.Main_Pack

module PP : sig ... end
exception Rest_not_null of string
exception Entry_not_in_table of string
module Input_commitment : sig ... end
type scalar = Kzg.Bls.Scalar.t
val scalar_t : scalar Repr.t
val scalar_encoding : scalar Data_encoding.t
type circuit_map = (Plonk.Circuit.t * int) Kzg.SMap.t
type prover_public_parameters
val prover_public_parameters_t : prover_public_parameters Repr.t
type verifier_public_parameters
val verifier_public_parameters_t : verifier_public_parameters Repr.t
val verifier_public_parameters_encoding : verifier_public_parameters Data_encoding.t
type proof
val proof_t : proof Repr.t
val proof_encoding : proof Data_encoding.t
type circuit_prover_input = {
  1. witness : scalar array;
  2. input_commitments : Input_commitment.t list;
}
val circuit_prover_input_t : circuit_prover_input Repr.t
type prover_inputs = circuit_prover_input list Kzg.SMap.t
val prover_inputs_t : prover_inputs Repr.t
type public_inputs = Kzg.Bls.Scalar.t array list
val public_inputs_t : public_inputs Repr.t
type circuit_verifier_input = {
  1. nb_proofs : int;
  2. public : public_inputs;
  3. commitments : Input_commitment.public list list;
}
val circuit_verifier_input_t : circuit_verifier_input Repr.t
type verifier_inputs = circuit_verifier_input Kzg.SMap.t
val verifier_inputs_t : verifier_inputs Repr.t
val input_commit : ?size:int -> ?shift:int -> prover_public_parameters -> scalar array -> Input_commitment.t
val update_prover_public_parameters : 'a Repr.ty -> 'a -> prover_public_parameters -> prover_public_parameters
val update_verifier_public_parameters : 'a Repr.ty -> 'a -> verifier_public_parameters -> verifier_public_parameters
val verify : verifier_public_parameters -> inputs:verifier_inputs -> proof -> bool
module Internal_for_tests : sig ... end
module Gates : sig ... end
module Perm : sig ... end
module RangeCheck : sig ... end
val get_gen_n_prover : prover_public_parameters -> scalar * int
val get_gen_n_verifier : verifier_public_parameters -> scalar * int
val filter_prv_pp_circuits : prover_public_parameters -> 'a Kzg.SMap.t -> prover_public_parameters
type prover_aux = {
  1. answers : scalar Kzg.SMap.t Kzg.SMap.t list;
  2. batch : scalar Kzg.SMap.t list;
  3. alpha : scalar;
  4. beta : scalar;
  5. gamma : scalar;
  6. delta : scalar;
  7. x : scalar;
  8. r : scalar;
  9. cms_answers : PP.Answers_commitment.t Kzg.SMap.t;
  10. cms_pi : PP.Answers_commitment.t Kzg.SMap.t;
  11. ids_batch : (scalar * int) Kzg.SMap.t;
  12. t_answers : scalar list;
}
type verifier_aux = {
  1. alpha : scalar;
  2. beta : scalar;
  3. gamma : scalar;
  4. delta : scalar;
  5. x : scalar;
  6. r : scalar;
}
type input_commit_funcs = {
  1. pi : scalar array -> PP.Answers_commitment.t;
  2. answers : Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t list -> PP.Answers_commitment.t;
}
val prove_list : prover_public_parameters -> input_commit_funcs:input_commit_funcs Kzg.SMap.t -> inputs:prover_inputs -> proof * prover_aux