Plonk.Identities
module SMap = Kzg.SMap
module Evaluations : sig ... end
module Identities : sig ... end
include module type of struct include Identities end
type prover_identities = Evaluations.t SMap.t -> Evaluations.t SMap.t
The 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.t
The 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.t
val string_of_eval_point : eval_point -> string
val convert_eval_points :
generator:Kzg.Bls.Scalar.t ->
x:Kzg.Bls.Scalar.t ->
eval_point list ->
Kzg.Bls.Scalar.t SMap.t
convert_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.t
get_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_identities
A function to merge a list of prover identities into one.
val merge_verifier_identities : verifier_identities list -> verifier_identities
A function to merge a list of verifier identities into one.