Polynomial_protocol.Make_implmodule Super_PC : Polynomial_commitment.Sinclude sig ... endtype prover_public_parameters = Super_PC.Public_parameters.proverval prover_public_parameters_t : Super_PC.Public_parameters.prover Repr.ttype verifier_public_parameters = Super_PC.Public_parameters.verifierval verifier_public_parameters_t : Super_PC.Public_parameters.verifier Repr.ttype proof = {cm_t : Super_PC.Commitment.t;pc_proof : Super_PC.proof;pc_answers : Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t list;}val proof_t : proof Repr.tval split_t :
int ->
Kzg.Bls.Poly.t ->
int ->
Kzg.Bls.Poly.t Plonk.Identities.SMap.tval compute_t :
n:int ->
alpha:Kzg.Bls.Scalar.t ->
nb_of_t_chunks:int ->
Plonk.Identities.Evaluations.t Plonk.Identities.SMap.t ->
Kzg.Bls.Poly.t Plonk.Identities.SMap.tval eval_and_batch_ids :
(Kzg.Bls.Scalar.t * 'a) ->
'b Plonk.Identities.SMap.t Plonk.Identities.SMap.t list ->
('a ->
'b Plonk.Identities.SMap.t Plonk.Identities.SMap.t ->
Kzg.Bls.Scalar.t Plonk.Identities.SMap.t) ->
Kzg.Bls.Scalar.tval setup :
setup_params:int ->
srs:(Kzg.Bls.Srs.t * Kzg.Bls.Srs.t) ->
Super_PC.Public_parameters.prover
* Super_PC.Public_parameters.verifier
* Kzg.Utils.Transcript.tval prove_aux :
Super_PC.Public_parameters.prover ->
Kzg__Utils.Transcript.t ->
int ->
Kzg.Bls.Scalar.t ->
(Kzg.Bls.Poly.t Plonk.Identities.SMap.t * Super_PC.Commitment.prover_aux)
list ->
Plonk.Identities.eval_point list list ->
'a ->
('a -> Plonk.Identities.Evaluations.t Plonk.Identities.SMap.t) ->
int ->
(Kzg.Bls.Scalar.t
* Kzg.Bls.Scalar.t
* Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t list
* Super_PC.Commitment.t)
* Kzg.Bls.Poly.t Plonk.Identities.SMap.t list
* Super_PC.Commitment.prover_aux list
* Kzg.Bls.Scalar.t Plonk.Identities.SMap.t list
* Kzg__Utils.Transcript.tval prove :
Super_PC.Public_parameters.prover ->
Kzg__Utils.Transcript.t ->
n:int ->
generator:Kzg.Bls.Scalar.t ->
secrets:
(Kzg.Bls.Poly.t Plonk.Identities.SMap.t * Super_PC.Commitment.prover_aux)
list ->
eval_points:Plonk.Identities.eval_point list list ->
evaluations:'a ->
identities:('a -> Plonk.Identities.Evaluations.t Plonk.Identities.SMap.t) ->
nb_of_t_chunks:int ->
proof * Kzg.Utils.Transcript.ttype pp_commit_to_t_r = Plonk.Identities.Evaluations.t Plonk.Identities.SMap.tval pp_commit_to_t_r_t :
Plonk.Identities.Evaluations.t Plonk.Identities.SMap.t Repr.tyval verify_aux :
Kzg__Utils.Transcript.t ->
Kzg.Bls.Scalar.t ->
Super_PC.Commitment.t list ->
Plonk.Identities.eval_point list list ->
proof ->
Kzg.Bls.Scalar.t
* Kzg.Bls.Scalar.t
* Kzg__Utils.Transcript.t
* Super_PC.Commitment.t list
* Kzg.Bls.Scalar.t Plonk.Identities.SMap.t listval verify :
Super_PC.Public_parameters.verifier ->
Kzg__Utils.Transcript.t ->
n:int ->
generator:Kzg.Bls.Scalar.t ->
commitments:Super_PC.Commitment.t list ->
eval_points:Plonk.Identities.eval_point list list ->
identities:
(Kzg.Bls.Scalar.t ->
Kzg.Bls.Scalar.t Plonk.Identities.SMap.t Plonk.Identities.SMap.t ->
Kzg.Bls.Scalar.t Plonk.Identities.SMap.t) ->
proof ->
bool * Kzg.Utils.Transcript.tmodule PC = Super_PCmodule Answers_commitment = Answers_commitmenttype prover_aux = {answers : Kzg.Bls.Scalar.t SMap.t SMap.t list;batch : Kzg.Bls.Scalar.t SMap.t list;alpha : Kzg.Bls.Scalar.t;x : Kzg.Bls.Scalar.t;r : Kzg.Bls.Scalar.t;cms_answers : Answers_commitment.t SMap.t;t_answers : Kzg.Bls.Scalar.t list;}val update_transcript_with_answers :
Kzg.Utils.Transcript.t ->
Answers_commitment.public SMap.t ->
Kzg.Bls.Scalar.t list ->
Kzg.Utils.Transcript.tval verify_t :
n:int ->
x:Kzg.Bls.Scalar.t ->
alpha:Kzg.Bls.Scalar.t ->
t_answers:Kzg.Bls.Scalar.t list ->
ids_batch:(Kzg.Bls.Scalar.t * int) SMap.t ->
boolval update_transcript_with_formatted_answers :
Kzg.Utils.Transcript.t ->
(Kzg.Bls.Scalar.t Kzg__SMap.t Kzg__SMap.t list ->
Answers_commitment.t)
SMap.t ->
Kzg.Bls.Scalar.t SMap.t SMap.t list ->
Kzg.Bls.Scalar.t list * Answers_commitment.t SMap.t * Kzg.Utils.Transcript.tval prove_super_aggregation :
Super_PC.Public_parameters.prover ->
Kzg__Utils.Transcript.t ->
commit_to_answers_map:
(Kzg.Bls.Scalar.t Kzg__SMap.t Kzg__SMap.t list ->
Answers_commitment.t)
SMap.t ->
n:int ->
generator:Kzg.Bls.Scalar.t ->
secrets:
(Kzg.Bls.Poly.t Plonk.Identities.SMap.t * Super_PC.Commitment.prover_aux)
list ->
eval_points:Plonk.Identities.eval_point list list ->
evaluations:'a ->
identities:('a -> Plonk.Identities.Evaluations.t Plonk.Identities.SMap.t) ->
nb_of_t_chunks:int ->
(proof * prover_aux) * Kzg.Utils.Transcript.tval verify_super_aggregation :
Super_PC.Public_parameters.verifier ->
Kzg__Utils.Transcript.t ->
n:int ->
generator:Kzg.Bls.Scalar.t ->
commitments:Super_PC.Commitment.t list ->
eval_points:Plonk.Identities.eval_point list list ->
s_list:Kzg.Bls.Scalar.t Kzg.SMap.t list ->
cms_answers:Answers_commitment.public SMap.t ->
t_answers:Kzg.Bls.Scalar.t list ->
ids_batch:(Kzg.Bls.Scalar.t * int) SMap.t ->
proof ->
(bool * verifier_aux) * Kzg.Utils.Transcript.t