Module Circuit.V

Parameters

Signature

module Gates = Main.Gates
module Perm = Main.Perm
module RC = Main.RangeCheck
module S = Plompiler.S
type circuit_inputs = {
  1. switches : bool Plompiler.LibCircuit.Input.input list;
  2. compressed_switches : scalar_input;
  3. alpha : scalar_input;
  4. beta : scalar_input;
  5. gamma : scalar_input;
  6. delta : scalar_input;
  7. x : scalar_input;
  8. r : scalar_input;
  9. ss_list : scalar_input list;
  10. selectors : (string * scalar_input) list;
  11. ids_batch : scalar_input;
  12. wires_g : scalar_input list list;
  13. wires : scalar_input list list;
  14. zg : scalar_input;
  15. z : scalar_input;
  16. batch : scalar_input list;
  17. inner_pi : scalar_input list list;
  18. outer_pi : scalar_input list;
  19. rc_selectors : scalar_input list;
  20. zg_rc_perm : scalar_input list;
  21. z_rc_perm : scalar_input list;
}
val nb_batches_default : int
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 compute_switches : int -> int -> S.t array * S.t
val map_end : ('a -> 'b) -> 'c list -> 'd list
val pad_answers : int -> int -> int -> S.t SMap.t SMap.t list -> S.t list
val pad_inputs : int -> int -> S.t list list -> S.t SMap.t SMap.t list -> S.t list * S.t list
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