Permutation_gate.Permutation_gate_impl
module PP : Polynomial_protocol.S
module PP = PP
module Commitment = PP.PC.Commitment
type public_parameters = {
g_map_perm_PP : Kzg.Bls.Poly.t Plonk.Identities.SMap.t;
cm_g_map_perm_PP : Commitment.t Plonk.Identities.SMap.t;
s_poly_map : Kzg.Bls.Poly.t Plonk.Identities.SMap.t;
cm_s_poly_map : Commitment.t Plonk.Identities.SMap.t;
permutation : int array;
}
val one : Kzg.Bls.Scalar.t
val zero : Kzg.Bls.Scalar.t
val mone : Kzg.Bls.Scalar.t
val quadratic_non_residues : Kzg.Bls.Scalar.t array
val get_k : int -> Kzg.Bls.Scalar.t
module Partition : sig ... end
module Preprocessing : sig ... end
module Permutation_poly : sig ... end
val build_permutation : Partition.IntMap.key array array -> int array
val preprocessing :
?external_prefix:string ->
domain:Kzg.Bls.Domain.t ->
permutation:int array ->
nb_wires:int ->
unit ->
Identities.Evaluations.polynomial Plonk.Identities.SMap.t
val common_preprocessing :
nb_wires:int ->
domain:Kzg.Bls.Domain.t ->
evaluations:Identities.Evaluations.t Kzg.SMap.t ->
Identities.Evaluations.t Kzg.SMap.t
val prover_identities :
?external_prefix:string ->
?circuit_prefix:(Stdlib.String.t -> Stdlib.String.t) ->
wires_names:Stdlib.String.t list ->
beta:Identities.Evaluations.scalar ->
gamma:Identities.Evaluations.scalar ->
n:int ->
unit ->
Identities.Evaluations.t Kzg.SMap.t ->
Identities.Evaluations.t Plonk.Identities.SMap.t
val verifier_identities :
?external_prefix:string ->
?circuit_prefix:(string -> string) ->
nb_proofs:int ->
generator:Kzg.Bls.Scalar.t ->
n:int ->
wires_names:Stdlib.String.t list ->
beta:Kzg.Bls.Scalar.t ->
gamma:Kzg.Bls.Scalar.t ->
delta:Kzg.Bls.Scalar.t ->
unit ->
Kzg.Bls.Scalar.t ->
Kzg.Bls.Scalar.t Plonk.Identities.SMap.t Plonk.Identities.SMap.t ->
Kzg.Bls.Scalar.t Plonk.Identities.SMap.t
val f_map_contribution :
?external_prefix:string ->
permutation:int array ->
values:Identities.Evaluations.t Plonk.Identities.SMap.t ->
beta:Kzg.Bls.Scalar.t ->
gamma:Kzg.Bls.Scalar.t ->
domain:Kzg.Bls.Domain.t ->
unit ->
Identities.Evaluations.polynomial Plonk.Identities.SMap.t
val cs :
?external_prefix:string ->
l1:L.Num.scalar L.Num.repr ->
ss_list:L.Num.scalar L.Num.repr list ->
beta:L.Num.scalar L.Num.repr ->
gamma:L.Num.scalar L.repr ->
x:L.Num.scalar L.Num.repr ->
z:L.Num.scalar L.Num.repr ->
zg:L.Num.scalar L.Num.repr ->
aggregated_wires:L.Num.scalar L.repr list ->
unit ->
(string * L.Num.scalar L.Num.repr) list L.t