Aggregation.Main_protocolmodule SMap = Kzg.SMapmodule type S = sig ... endmodule Make_impl (Super_PP : Polynomial_protocol.S) : sig ... endmodule Make
(PP : Polynomial_protocol.S) :
S with module PP = PP and type public_inputs = Kzg.Bls.Scalar.t array listinclude sig ... endmodule 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.ttype prover_public_parameters =
Make(Polynomial_protocol).prover_public_parametersval prover_public_parameters_t : prover_public_parameters Repr.ttype verifier_public_parameters =
Make(Polynomial_protocol).verifier_public_parametersval verifier_public_parameters_t : verifier_public_parameters Repr.tval verifier_public_parameters_encoding :
verifier_public_parameters Data_encoding.ttype proof = Make(Polynomial_protocol).proofval proof_t : proof Repr.tval proof_encoding : proof Data_encoding.ttype circuit_prover_input = Make(Polynomial_protocol).circuit_prover_input = {witness : scalar array;input_commitments : Input_commitment.t list;}val 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 = Make(Polynomial_protocol).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 * intReturns (g, n), where n is the size of the circuit padded to the next power of two & g is a primitive n-th root of unity
val get_gen_n_verifier : verifier_public_parameters -> scalar * intReturns (g, n), where n is the size of the circuit padded to the next power of two & g is a primitive n-th root of unity
val filter_prv_pp_circuits :
prover_public_parameters ->
'a SMap.t ->
prover_public_parametersval filter_vrf_pp_circuits :
verifier_public_parameters ->
'a SMap.t ->
verifier_public_parameterstype prover_aux = Make(Polynomial_protocol).prover_aux = {answers : scalar SMap.t SMap.t list;batch : scalar SMap.t list;alpha : scalar;beta : scalar;gamma : scalar;delta : scalar;x : scalar;r : scalar;cms_answers : PP.Answers_commitment.t SMap.t;cms_pi : PP.Answers_commitment.t SMap.t;ids_batch : (scalar * int) SMap.t;t_answers : scalar list;}Auxiliary information needed by the prover for the meta-verification in aPlonK
Auxiliary information needed by the verifier for the meta-verification in aPlonK
type input_commit_funcs = Make(Polynomial_protocol).input_commit_funcs = {pi : scalar array -> PP.Answers_commitment.t;answers : Kzg.Bls.Scalar.t SMap.t SMap.t list -> PP.Answers_commitment.t;}val prove_list :
prover_public_parameters ->
input_commit_funcs:input_commit_funcs SMap.t ->
inputs:prover_inputs ->
proof * prover_auxval verify_list :
verifier_public_parameters ->
(proof
* scalar SMap.t list
* PP.Answers_commitment.public SMap.t
* PP.Answers_commitment.public SMap.t
* scalar list
* (scalar * int) SMap.t) ->
bool * verifier_aux