Make_impl.Aggreg_circuit
module Gates : sig ... end
module Perm : sig ... end
module RC : sig ... end
module S = Plompiler.S
type scalar_input =
Plompiler.LibCircuit.scalar Plompiler.LibCircuit.Input.input
type circuit_inputs = {
switches : bool Plompiler.LibCircuit.Input.input list;
compressed_switches : scalar_input;
alpha : scalar_input;
beta : scalar_input;
gamma : scalar_input;
delta : scalar_input;
x : scalar_input;
r : scalar_input;
ss_list : scalar_input list;
selectors : (string * scalar_input) list;
ids_batch : scalar_input;
wires_g : scalar_input list list;
wires : scalar_input list list;
zg : scalar_input;
z : scalar_input;
batch : scalar_input list;
inner_pi : scalar_input list list;
outer_pi : scalar_input list;
rc_selectors : scalar_input list;
zg_rc_perm : scalar_input list;
z_rc_perm : scalar_input list;
}
val nb_batches : Plonk.Circuit.t -> int
val dummy_input :
'a Kzg.SMap.t ->
string list ->
int ->
int ->
int ->
int ->
circuit_inputs
module Constraints : sig ... end
val verify_batch :
Kzg.Bls.Scalar.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t list ->
(Kzg.Bls.Scalar.t * int) Kzg.SMap.t list Kzg.SMap.t ->
Kzg.Bls.Scalar.t list ->
bool
val aggreg_public_inputs :
int ->
('a * 'a * 'a * 'a * 'a * 'a) ->
('a * 'b) Kzg.SMap.t list ->
'a ->
'a ->
'a list ->
'a array
val pad_answers :
int ->
int ->
int ->
S.t Kzg.SMap.t Kzg.SMap.t list ->
S.t list
val pad_inputs :
int ->
int ->
S.t list list ->
S.t Kzg.SMap.t Kzg.SMap.t list ->
S.t list * S.t list
val get_witness :
int ->
int ->
Main_Pack.prover_aux ->
Kzg.SMap.key ->
int ->
Plompiler.Solver.t ->
(S.t list list * Main_Pack.scalar list) ->
S.t array ->
Main_Pack.scalar ->
(Main_Pack.scalar * 'a) Kzg.SMap.t list ->
Plompiler.Csir.Scalar.t array
val get_batches :
'a Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg__SMap.t Kzg__SMap.t list ->
Kzg.Bls.Scalar.t ->
(Kzg.Bls.Scalar.t * int) Kzg.SMap.t list Kzg.SMap.t
val verification_circuit :
(S.t * int) ->
int list ->
(switches:bool Plompiler.LibCircuit.Bool.repr list ->
outer:Plompiler.LibCircuit.scalar Plompiler.LibCircuit.repr list ->
inner:
Plompiler.LibCircuit.Num.scalar Plompiler.LibCircuit.Num.repr list list ->
bool Plompiler.LibCircuit.Bool.repr Plompiler.LibCircuit.t) ->
circuit_inputs ->
unit Plompiler.LibCircuit.Bool.repr Plompiler.LibCircuit.t
val get_cs_verification :
Main_Pack.prover_public_parameters ->
Plonk.Circuit.t ->
int ->
int ->
(int * int) ->
(switches:bool Plompiler.LibCircuit.Bool.repr list ->
outer:Plompiler.LibCircuit.scalar Plompiler.LibCircuit.repr list ->
inner:
Plompiler.LibCircuit.Num.scalar Plompiler.LibCircuit.Num.repr list list ->
bool Plompiler.LibCircuit.Bool.repr Plompiler.LibCircuit.t) ->
Plompiler.LibCircuit.cs_result