Plonk.Identitiesmodule SMap = Kzg.SMapmodule Evaluations : sig ... endmodule Identities : sig ... endinclude module type of struct include Identities endtype prover_identities = Evaluations.t SMap.t -> Evaluations.t SMap.tThe type for prover identities: functions from a (string) map of polynomials in FFT evaluations form to a (string) map of evaluated identities (also polynomials in FFT evaluations form).
type verifier_identities =
Kzg.Bls.Scalar.t ->
Kzg.Bls.Scalar.t SMap.t SMap.t ->
Kzg.Bls.Scalar.t SMap.tThe type for verifier identities: functions which map an evaluation point ξ an a PC.answer into a (string) map of evaluated identities.
The type for evaluation points. Either X, GX, or a custom point, which must be specified by an evaluation point name paired with a scalar that will multiply ξ. For example:
X could be implemented as Custom ("x", Scalar.one)GX could be implemented as Custom ("gx", generator).val eval_point_t : eval_point Repr.tval string_of_eval_point : eval_point -> stringval convert_eval_points :
generator:Kzg.Bls.Scalar.t ->
x:Kzg.Bls.Scalar.t ->
eval_point list ->
Kzg.Bls.Scalar.t SMap.tconvert_eval_points gen x points maps the polynomial protocol points : eval_point list into scalars, by evaluating the underlying "composition" polynomial at x. The generator gen is used in case the eval_point equals GX, in which case the resulting scalar is x * gen.
val get_answer :
Kzg.Bls.Scalar.t SMap.t SMap.t ->
eval_point ->
string ->
Kzg.Bls.Scalar.tget_answer answers p name extracts the evaluation of polynomial name at point p from the given answers.
val merge_prover_identities : prover_identities list -> prover_identitiesA function to merge a list of prover identities into one.
val merge_verifier_identities : verifier_identities list -> verifier_identitiesA function to merge a list of verifier identities into one.