Circuit.V
module Main : Aggregation.Main_protocol.S
module Gates = Main.Gates
module Perm = Main.Perm
module RC = Main.RangeCheck
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 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 SMap.t list ->
(Kzg.Bls.Scalar.t * int) SMap.t list SMap.t ->
Kzg.Bls.Scalar.t list ->
bool
val aggreg_public_inputs :
int ->
('a * 'b * 'c * 'd * 'e * 'f) ->
('g * 'h) SMap.t list ->
'i ->
'j ->
'k list ->
'l array
val get_witness :
int ->
int ->
Main.prover_aux ->
SMap.key ->
int ->
Plompiler.Solver.t ->
(S.t list list * Main.scalar list) ->
S.t array ->
Main.scalar ->
(Main.scalar * 'a) SMap.t list ->
Plompiler.Csir.Scalar.t array
val get_batches :
'a SMap.t ->
Kzg.Bls.Scalar.t Kzg__SMap.t Kzg__SMap.t list ->
Kzg.Bls.Scalar.t ->
(Kzg.Bls.Scalar.t * int) SMap.t list 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.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