Common.MP
module PP : sig ... end
type proof = Main_Pack.proof = {
perm_and_plook : PP.PC.Commitment.t;
wires_cm : PP.PC.Commitment.t;
pp_proof : PP.proof;
}
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 = Main_Pack.prover_public_parameters
val prover_public_parameters_t : prover_public_parameters Repr.t
type verifier_public_parameters = Main_Pack.verifier_public_parameters
val verifier_public_parameters_t : verifier_public_parameters Repr.t
val verifier_public_parameters_encoding :
verifier_public_parameters Data_encoding.t
val proof_t : proof Repr.t
val proof_encoding : proof Data_encoding.t
type circuit_prover_input = Main_Pack.circuit_prover_input = {
witness : scalar array;
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 = Main_Pack.public_inputs
val public_inputs_t : public_inputs Repr.t
type circuit_verifier_input = Main_Pack.circuit_verifier_input = {
nb_proofs : int;
public : public_inputs;
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 to_verifier_inputs :
prover_public_parameters ->
prover_inputs ->
verifier_inputs
val input_commit :
?size:int ->
?shift:int ->
prover_public_parameters ->
scalar array ->
Input_commitment.t
val setup :
zero_knowledge:bool ->
circuit_map ->
srs:(Kzg.Bls.Srs.t * Kzg.Bls.Srs.t) ->
prover_public_parameters * verifier_public_parameters
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 prove : prover_public_parameters -> inputs:prover_inputs -> proof
val verify :
verifier_public_parameters ->
inputs:verifier_inputs ->
proof ->
bool
module Internal_for_tests : sig ... end
type gate_randomness = Main_Pack.gate_randomness = {
beta : Kzg.Bls.Scalar.t;
gamma : Kzg.Bls.Scalar.t;
delta : Kzg.Bls.Scalar.t;
}
val build_gates_randomness :
Kzg.Utils.Transcript.t ->
gate_randomness * Kzg.Utils.Transcript.t
val filter_prv_pp_circuits :
prover_public_parameters ->
'a Kzg.SMap.t ->
prover_public_parameters
module Prover : sig ... end
type worker_inputs = Main_Pack.worker_inputs
val worker_inputs_t : worker_inputs Repr.t
val split_inputs_map :
nb_workers:int ->
circuit_prover_input list Kzg.SMap.t ->
worker_inputs Kzg.SMap.t list
type commit_to_wires_reply = PP.PC.Commitment.t
val commit_to_wires_reply_t : commit_to_wires_reply Repr.t
type commit_to_wires_remember = Main_Pack.commit_to_wires_remember = {
all_f_wires : Kzg.Bls.Poly.t Kzg.SMap.t;
wires_list_map : Plonk.Identities.Evaluations.t Kzg.SMap.t list Kzg.SMap.t;
inputs_map : circuit_prover_input list Kzg.SMap.t;
shifts_map : (int * int) Kzg.SMap.t;
f_wires : Kzg.Bls.Poly.t Kzg.SMap.t list Kzg.SMap.t;
cm_aux_wires : PP.PC.Commitment.prover_aux;
}
val worker_commit_to_wires :
prover_public_parameters ->
worker_inputs Kzg.SMap.t ->
commit_to_wires_reply * commit_to_wires_remember
type commit_to_plook_rc_reply = Main_Pack.commit_to_plook_rc_reply = {
batched_wires_map : Plonk.Identities.Evaluations.t Kzg.SMap.t Kzg.SMap.t;
cmt : PP.PC.Commitment.t;
f_map : Kzg.Bls.Poly.t Kzg.SMap.t;
prover_aux : PP.PC.Commitment.prover_aux;
}
val commit_to_plook_rc_reply_t : commit_to_plook_rc_reply Repr.t
val commit_to_plook_rc :
prover_public_parameters ->
(int * int) Kzg.SMap.t ->
Kzg.Utils.Transcript.t ->
Plonk.Identities.Evaluations.t Kzg.SMap.t list Kzg.SMap.t ->
commit_to_plook_rc_reply * commit_to_plook_rc_remember
val batch_evaluated_ids :
alpha:scalar ->
Plonk.Identities.Evaluations.t Kzg.SMap.t ->
string list ->
Plonk.Identities.Evaluations.t
val kzg_eval_at_x :
prover_public_parameters ->
Kzg.Utils.Transcript.t ->
(PP.PC.secret * PP.PC.Commitment.prover_aux) list ->
scalar ->
PP.PC.answer list
val make_secret :
prover_public_parameters ->
(Kzg.Bls.Poly.t Kzg.SMap.t * PP.PC.Commitment.prover_aux) ->
(Kzg.Bls.Poly.t Kzg.SMap.t * PP.PC.Commitment.prover_aux) list
val make_eval_points :
prover_public_parameters ->
Plonk.Identities.eval_point list list * Plonk.Identities.eval_point list list
val get_srs : prover_public_parameters -> PP.prover_public_parameters
val get_gen_n_nbt : prover_public_parameters -> scalar * int * int
val get_transcript : prover_public_parameters -> Kzg.Utils.Transcript.t
val check_no_zk : prover_public_parameters -> unit