Make_impl.Prover
type common_prover_pp = {
n : int;
domain : Kzg.Bls.Domain.t;
pp_public_parameters : Super_PP.PC.Public_parameters.prover;
g_map : Kzg.Bls.Poly.t Plonk.Main_protocol_intf.SMap.t;
g_prover_aux : Commitment.prover_aux;
evaluations : Plonk.Identities.Evaluations.t Plonk.Main_protocol_intf.SMap.t;
zk : bool;
nb_of_t_chunks : int;
eval_points : Plonk.Identities.eval_point list list;
}
val common_prover_pp_t : common_prover_pp Repr.t
type circuit_prover_pp = {
circuit_size : int;
input_com_sizes : int list;
public_input_size : int;
gates : Kzg.Bls.Scalar.t array Plonk.Main_protocol_intf.SMap.t;
tables : Kzg.Bls.Scalar.t array list;
wires : int array array;
permutation : int array;
rc_permutations : int array Plonk.Main_protocol_intf.SMap.t;
evaluations : Plonk.Identities.Evaluations.t Plonk.Main_protocol_intf.SMap.t;
alpha : Kzg.Bls.Scalar.t option;
ultra : bool;
range_checks : (int * int) list Plonk.Main_protocol_intf.SMap.t;
}
val circuit_prover_pp_t : circuit_prover_pp Repr.t
type public_parameters = {
common_pp : common_prover_pp;
circuits_map : circuit_prover_pp Plonk.Main_protocol_intf.SMap.t;
transcript : Kzg.Utils.Transcript.t;
}
val public_parameters_t : public_parameters Repr.t
val build_all_wires_keys :
public_parameters ->
int Plonk.Main_protocol_intf.SMap.t ->
int ->
string list
val build_all_keys_z : public_parameters -> string list
val enforce_wire_values :
int array array ->
Plonk.Identities.Evaluations.scalar array ->
Plonk.Identities.Evaluations.t array
val update_wires_with_rc_1 :
?shifts_map:(int * int) Kzg__SMap.t ->
public_parameters ->
(Kzg.Bls.Poly.t Plonk.Main_protocol_intf.SMap.t
* Kzg.Bls.Poly.t Kzg__SMap.t list Kzg__SMap.t
* Kzg.Bls.Poly.t Plonk.Main_protocol_intf.SMap.t option list
Plonk.Main_protocol_intf.SMap.t
* Plonk.Identities.Evaluations.t Kzg__SMap.t list
Plonk.Main_protocol_intf.SMap.t) ->
Kzg.Bls.Poly.t Plonk.Main_protocol_intf.SMap.t
* Kzg.Bls.Poly.t Kzg__SMap.t list Kzg__SMap.t
* Kzg.Bls.Poly.t Plonk.Main_protocol_intf.SMap.t option list
Plonk.Main_protocol_intf.SMap.t
* Plonk.Identities.Evaluations.t Kzg__SMap.t list Kzg__SMap.t
val commit_to_wires :
?all_keys:string list ->
?shifts_map:(int * int) Kzg__SMap.t ->
public_parameters ->
circuit_prover_input list Plonk.Main_protocol_intf.SMap.t ->
Plonk.Identities.Evaluations.t Kzg__SMap.t list Kzg__SMap.t
* Kzg.Bls.Poly.t Kzg__SMap.t list Kzg__SMap.t
* Kzg.Bls.Poly.t Plonk.Main_protocol_intf.SMap.t option list
Plonk.Main_protocol_intf.SMap.t
* Kzg.Bls.Poly.t Plonk.Main_protocol_intf.SMap.t
* Commitment.t
* Commitment.prover_aux
val build_f_map_perm :
public_parameters ->
gate_randomness ->
Plonk.Identities.Evaluations.t Plonk.Main_protocol_intf.SMap.t
Plonk.Main_protocol_intf.SMap.t ->
Kzg.Bls.Poly.t Kzg__SMap.t
val build_f_map_plook :
?shifts_map:(int * int) Kzg__SMap.t ->
public_parameters ->
gate_randomness ->
Plonk.Identities.Evaluations.t Plonk.Identities.SMap.t list
Plonk.Main_protocol_intf.SMap.t ->
Kzg.Bls.Poly.t Kzg__SMap.t
val build_f_map_rc_2 :
public_parameters ->
gate_randomness ->
Plonk.Identities.Evaluations.t Plonk.Identities.SMap.t
Plonk.Main_protocol_intf.SMap.t ->
Kzg.Bls.Poly.t Kzg__SMap.t
val format_input_com :
circuit_prover_input list Plonk.Main_protocol_intf.SMap.t ->
(Kzg.Bls.Poly.t Plonk.Main_protocol_intf.SMap.t
* Super_PP.PC.Commitment.prover_aux)
list
val build_evaluations :
public_parameters ->
Plonk.Identities.Evaluations.polynomial Kzg.SMap.t ->
Plonk.Identities.Evaluations.t Kzg.SMap.t
val build_perm_rc2_identities :
public_parameters ->
gate_randomness ->
Plonk.Identities.prover_identities
val build_gates_plook_rc1_identities :
?shifts_map:(int * int) Plonk.Main_protocol_intf.SMap.t ->
public_parameters ->
gate_randomness ->
circuit_prover_input Plonk.List.t Plonk.Main_protocol_intf.SMap.t ->
Plonk.Identities.prover_identities
val prove_parameters :
pp_prove:
(Super_PP.PC.Public_parameters.prover ->
Kzg.Utils.Transcript.t ->
n:int ->
generator:Kzg.Bls.Domain.scalar ->
secrets:
(Kzg.Bls.Poly.t Plonk.Main_protocol_intf.SMap.t * Commitment.prover_aux)
list ->
eval_points:Plonk.Identities.eval_point list list ->
evaluations:Plonk.Identities.Evaluations.t Kzg.SMap.t ->
identities:Plonk.Identities.prover_identities ->
nb_of_t_chunks:int ->
'a * 'b) ->
public_parameters ->
inputs_map:circuit_prover_input Plonk.List.t Plonk.Main_protocol_intf.SMap.t ->
'a * (Super_PP.PC.Commitment.t * Commitment.t * gate_randomness)