Polynomial_protocol.Make_implSourceFunctor building an implementation of a polynomial protocol given a polynomial commitment scheme PC.
module PC : Polynomial_commitment.Smodule PC = PCsplit_t n t nb_of_t_chunks splits t polynomial in nb_of_t_chunks polynomials of at most n coefficients (and at most degree n-1), except the last one that may have more coeffictients depending on t’s degree
val compute_t :
n:int ->
alpha:Plonk.Bls.Scalar.t ->
nb_of_t_chunks:int ->
Bls.Evaluations.t SMap.t ->
Plonk.Bls.Poly.t SMap.tval eval_and_batch_ids :
(Plonk.Bls.Scalar.t * 'a) ->
'b SMap.t SMap.t list ->
('a -> 'b SMap.t SMap.t -> Plonk.Bls.Scalar.t SMap.t) ->
Plonk.Bls.Scalar.tval verify_t :
int ->
Plonk.Bls.Scalar.t ->
Plonk.Bls.Scalar.t ->
Plonk.Bls.Scalar.t list ->
boolval setup :
setup_params:PC.Public_parameters.setup_params ->
srs:(Octez_bls12_381_polynomial.Srs.t * Octez_bls12_381_polynomial.Srs.t) ->
PC.Public_parameters.prover * PC.Public_parameters.verifierval prove_aux :
PC.Commitment.prover_public_parameters ->
Bytes.t ->
int ->
Plonk.Bls.Scalar.t ->
(Plonk.Bls.Poly.t SMap.t * PC.Commitment.prover_aux) list ->
Identities.eval_point list list ->
'a ->
('a -> Bls.Evaluations.t SMap.t) ->
int ->
(Plonk.Bls.Scalar.t * Plonk.Bls.Scalar.t * PC.answer list * PC.Commitment.t)
* Plonk.Bls.Poly.t SMap.t list
* PC.Commitment.prover_aux list
* Plonk.Bls.Scalar.t SMap.t list
* Bytes.tval prove :
PC.Commitment.prover_public_parameters ->
Bytes.t ->
n:int ->
generator:Plonk.Bls.Scalar.t ->
secrets:(Plonk.Bls.Poly.t SMap.t * PC.Commitment.prover_aux) list ->
eval_points:Identities.eval_point list list ->
evaluations:'a ->
identities:('a -> Bls.Evaluations.t SMap.t) ->
nb_of_t_chunks:int ->
proof * PC.transcriptval verify_aux :
Bytes.t ->
Plonk.Bls.Scalar.t ->
PC.Commitment.t list ->
Identities.eval_point list list ->
proof ->
Plonk.Bls.Scalar.t
* Plonk.Bls.Scalar.t
* Bytes.t
* PC.Commitment.t list
* Plonk.Bls.Scalar.t SMap.t listval verify :
PC.Public_parameters.verifier ->
Bytes.t ->
n:int ->
generator:Plonk.Bls.Scalar.t ->
commitments:PC.Commitment.t list ->
eval_points:Identities.eval_point list list ->
identities:
(Plonk.Bls.Scalar.t ->
Plonk.Bls.Scalar.t SMap.t SMap.t ->
Plonk.Bls.Scalar.t SMap.t) ->
proof ->
bool * PC.transcript