Main_protocol.Main_Packmodule PP : sig ... endmodule Input_commitment : sig ... endtype scalar = Kzg.Bls.Scalar.tval scalar_t : scalar Repr.tval scalar_encoding : scalar Data_encoding.ttype circuit_map = (Plonk.Circuit.t * int) Kzg.SMap.tval prover_public_parameters_t : prover_public_parameters Repr.tval verifier_public_parameters_t : verifier_public_parameters Repr.tval verifier_public_parameters_encoding :
verifier_public_parameters Data_encoding.tval proof_t : proof Repr.tval proof_encoding : proof Data_encoding.tval circuit_prover_input_t : circuit_prover_input Repr.ttype prover_inputs = circuit_prover_input list Kzg.SMap.tval prover_inputs_t : prover_inputs Repr.ttype public_inputs = Kzg.Bls.Scalar.t array listval public_inputs_t : public_inputs Repr.ttype circuit_verifier_input = {nb_proofs : int;public : public_inputs;commitments : Input_commitment.public list list;}val circuit_verifier_input_t : circuit_verifier_input Repr.ttype verifier_inputs = circuit_verifier_input Kzg.SMap.tval verifier_inputs_t : verifier_inputs Repr.tval to_verifier_inputs :
prover_public_parameters ->
prover_inputs ->
verifier_inputsval input_commit :
?size:int ->
?shift:int ->
prover_public_parameters ->
scalar array ->
Input_commitment.tval setup :
zero_knowledge:bool ->
circuit_map ->
srs:(Kzg.Bls.Srs.t * Kzg.Bls.Srs.t) ->
prover_public_parameters * verifier_public_parametersval update_prover_public_parameters :
'a Repr.ty ->
'a ->
prover_public_parameters ->
prover_public_parametersval update_verifier_public_parameters :
'a Repr.ty ->
'a ->
verifier_public_parameters ->
verifier_public_parametersval prove : prover_public_parameters -> inputs:prover_inputs -> proofval verify :
verifier_public_parameters ->
inputs:verifier_inputs ->
proof ->
boolmodule Internal_for_tests : sig ... endmodule Gates : sig ... endmodule Perm : sig ... endmodule RangeCheck : sig ... endval get_gen_n_prover : prover_public_parameters -> scalar * intval get_gen_n_verifier : verifier_public_parameters -> scalar * intval filter_prv_pp_circuits :
prover_public_parameters ->
'a Kzg.SMap.t ->
prover_public_parametersval filter_vrf_pp_circuits :
verifier_public_parameters ->
'a Kzg.SMap.t ->
verifier_public_parameterstype prover_aux = {answers : scalar Kzg.SMap.t Kzg.SMap.t list;batch : scalar Kzg.SMap.t list;alpha : scalar;beta : scalar;gamma : scalar;delta : scalar;x : scalar;r : scalar;cms_answers : PP.Answers_commitment.t Kzg.SMap.t;cms_pi : PP.Answers_commitment.t Kzg.SMap.t;ids_batch : (scalar * int) Kzg.SMap.t;t_answers : scalar list;}type input_commit_funcs = {pi : scalar array -> PP.Answers_commitment.t;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_auxval verify_list :
verifier_public_parameters ->
(proof
* scalar Kzg.SMap.t list
* PP.Answers_commitment.public Kzg.SMap.t
* PP.Answers_commitment.public Kzg.SMap.t
* scalar list
* (scalar * int) Kzg.SMap.t) ->
bool * verifier_aux