Cq.Internalmodule PC = Kzg.Polynomial_commitmentmodule ISet : sig ... endmodule IMap : sig ... endtype prover_public_parameters = {n : int;domain_k : Kzg.Bls.Domain.t;domain_2k : Kzg.Bls.Domain.t;table : ISet.t Kzg.Bls.Scalar_map.t list;cms_lagrange : Kzg.Bls.G1.t array;cms_lagrange_0 : Kzg.Bls.G1.t array;q : Kzg.Bls.G1.t array list;pc : PC.Public_parameters.prover;}type verifier_public_parameters = {n : int;k : int;srs2_0 : Kzg.Bls.G2.t;srs2_1 : Kzg.Bls.G2.t;srs2_N_1_k_2 : Kzg.Bls.G2.t;cm_table : Kzg.Bls.G2.t list;cm_zv : Kzg.Bls.G2.t;pc : PC.Public_parameters.verifier;}type proof = {cm_f : PC.Commitment.t;cm_f_agg : PC.Commitment.t;cm_a : PC.Commitment.t;cm_b0 : PC.Commitment.t;cm_qa : PC.Commitment.t;cm_m : PC.Commitment.t;cm_p : Degree_check.Proof.t;cm_b0_qb_f : PC.Commitment.t;a0 : Kzg.Bls.Scalar.t list;b0y : Kzg.Bls.Scalar.t Plonk.Identities.SMap.t;fy : Kzg.Bls.Scalar.t Plonk.Identities.SMap.t;fy_agg : Kzg.Bls.Scalar.t Plonk.Identities.SMap.t;pc : PC.proof;cm_a0 : Kzg.Bls.G1.t;}val aggregate_cm :
Kzg.Bls.G1.t Plonk.Identities.SMap.t ->
Kzg.Bls.G1.Scalar.t array ->
Kzg.Bls.G1.tval get_pc_query :
Kzg.Bls.Scalar.t ->
Kzg.Bls.Scalar.t Plonk.Identities.SMap.t listval commit1 :
PC.Public_parameters.prover ->
Kzg.Bls.Poly.t ->
Kzg.Bls.G1.Srs.eltval open_at_0 : Kzg.Bls.Poly.t -> Kzg.Bls.Poly.tval compute_and_commit :
('a -> Kzg.Bls.G1.Scalar.t * Kzg.Bls.G1.t) ->
'a list ->
Kzg.Bls.G1.Scalar.t array * Kzg.Bls.G1.tval setup_prover :
(int * Identities.Evaluations.domain) ->
int ->
(Kzg.Bls.Poly.scalar array list * Kzg.Bls.Poly.t list) ->
PC.Public_parameters.prover ->
prover_public_parametersval setup_verifier :
('a * Kzg.Bls.Srs_g2.t) ->
int ->
int ->
Kzg.Bls.Poly.t list ->
PC.Public_parameters.verifier ->
verifier_public_parametersval setup :
srs:Mavkit_bls12_381_polynomial.Srs.t ->
wire_size:int ->
table:Kzg.Bls.Poly.scalar array list ->
prover_public_parameters * verifier_public_parametersval compute_m_and_t_sparse :
prover_public_parameters ->
Kzg.Bls.Scalar_map.key array Plonk.Identities.SMap.t ->
'a array ->
(IMap.key * Kzg.Bls.Scalar.t * 'b) list * Kzg.Bls.G1.tval compute_a :
prover_public_parameters ->
Kzg.Bls.Scalar.t ->
(int * Kzg.Bls.Scalar.t * Kzg.Bls.Scalar.t) list ->
(int * Kzg.Bls.G1.Scalar.t) list * Kzg.Bls.G1.tval compute_cm_qa :
Kzg.Bls.G1.Scalar.t array ->
prover_public_parameters ->
(int * Kzg.Bls.G1.Scalar.t) list ->
Kzg.Bls.G1.tval compute_b :
Kzg.Bls.Scalar.t ->
int ->
Identities.Evaluations.domain ->
Kzg.Bls.Scalar.t array ->
Identities.Evaluations.polynomialval compute_qb :
prover_public_parameters ->
Identities.Evaluations.scalar ->
int ->
Identities.Evaluations.polynomial ->
Identities.Evaluations.polynomial ->
Kzg.Bls.Poly.tval compute_p :
prover_public_parameters ->
Kzg.Utils.Transcript.t ->
int ->
Kzg.Bls.G1.t Kzg.SMap.t ->
Kzg.Bls.Poly.t Kzg.SMap.t ->
Kzg.Bls.G1.Srs.elt * Kzg__Utils.Transcript.tval compute_a0 : int -> ('a * Kzg.Bls.Scalar.t) list -> Kzg.Bls.Scalar.tval compute_cm_a0 :
prover_public_parameters ->
Kzg.Bls.Scalar.t array ->
(IMap.key * Kzg.Bls.Scalar.t) list list ->
Kzg.Bls.G1.tval kzg_prove :
prover_public_parameters ->
Kzg.Utils.Transcript.t ->
int ->
((Kzg.Bls.G1.Srs.elt Kzg.SMap.t * unit)
* (Kzg.Bls.G1.Srs.elt Kzg.SMap.t * unit)) ->
(Kzg.Bls.Poly.t Plonk.Identities.SMap.t
* Kzg.Bls.Poly.t Plonk.Identities.SMap.t
* Kzg.Bls.Poly.t Plonk.Identities.SMap.t
* Kzg.Bls.Poly.t list) ->
Kzg.Bls.Poly.scalar Plonk.Identities.SMap.t
* Kzg.Bls.Poly.scalar Plonk.Identities.SMap.t
* Kzg.Bls.Poly.scalar Plonk.Identities.SMap.t
* Kzg.Bls.G1.Srs.elt Kzg.SMap.t
* Kzg.Bls.G1.Srs.elt Kzg.SMap.t
* Kzg.Bls.G1.Srs.elt Kzg.SMap.t
* Kzg.Utils.Transcript.tval kzg_verify :
verifier_public_parameters ->
Kzg.Utils.Transcript.t ->
proof ->
int ->
Kzg.Bls.Scalar.t ->
bool * Kzg.Utils.Transcript.tval verify_f_agg : Kzg.Bls.Scalar.t array -> proof -> boolval prove :
prover_public_parameters ->
Kzg.Utils.Transcript.t ->
Identities.Evaluations.scalar array Plonk.Identities.SMap.t List.t ->
proof * Kzg__Utils.Transcript.tval verify :
verifier_public_parameters ->
Kzg.Utils.Transcript.t ->
proof ->
bool * Kzg__Utils.Transcript.t