Module Csir.CS

val q_list : ?q_table:'a -> qc:'b -> linear:(int * 'c) list -> linear_g:(int * 'd) list -> qm:'e -> qx2b:'f -> qx5a:'g -> qx5c:'h -> qecc_ws_add:'i -> qecc_ed_add:'j -> qecc_ed_cond_add:'k -> qbool:'l -> qcond_swap:'m -> q_anemoi:'n -> q_mod_add:(string * 'o) list -> q_mod_mul:(string * 'p) list -> q_plookup:'q -> unit -> (string * 'r) list
type selector_tag =
  1. | Linear
  2. | Arithmetic
  3. | ThisConstr
  4. | NextConstr
  5. | Wire of int
val selector_tag_t : selector_tag Repr.t
val all_selectors : (string * selector_tag list) list
val selectors_with_tags : selector_tag list -> string list
val this_constr_selectors : string list
val next_constr_selectors : string list
val this_constr_linear_selectors : string list
val next_constr_linear_selectors : string list
val arithmetic_selectors : string list
type raw_constraint = {
  1. wires : int array;
  2. sels : (string * Scalar.t) list;
  3. precomputed_advice : (string * Scalar.t) list;
  4. label : string list;
}
val raw_constraint_t : raw_constraint Repr.t
type gate = raw_constraint array
val gate_t : raw_constraint array Repr.t
type t = gate list
val t : raw_constraint array list Repr.t
val new_constraint : wires:int list -> ?qc:Scalar.t -> ?linear:(int * Scalar.t) list -> ?linear_g:(int * Scalar.t) list -> ?qm:Scalar.t -> ?qx2b:Scalar.t -> ?qx5a:Scalar.t -> ?qx5c:Scalar.t -> ?qecc_ws_add:Scalar.t -> ?qecc_ed_add:Scalar.t -> ?qecc_ed_cond_add:Scalar.t -> ?qbool:Scalar.t -> ?qcond_swap:Scalar.t -> ?q_anemoi:Scalar.t -> ?q_mod_add:(string * Scalar.t) list -> ?q_mod_mul:(string * Scalar.t) list -> ?q_plookup:Scalar.t -> ?q_table:Scalar.t -> ?precomputed_advice:(string * Scalar.t) list -> ?labels:string list -> string -> raw_constraint
val get_sel : ('a * Scalar.t) list -> 'b -> Scalar.t
val to_string_raw_constraint : raw_constraint -> string
val to_string_gate : raw_constraint array -> string
val to_string : raw_constraint array list -> string
val is_linear_raw_constr : raw_constraint -> bool
val rename_wires_constr : rename:(int -> int) -> raw_constraint -> raw_constraint
val rename_wires : rename:(int -> int) -> raw_constraint array -> raw_constraint array
val is_arithmetic_raw_constr : raw_constraint -> bool
val boolean_raw_constr : raw_constraint -> int option
val used_selectors : raw_constraint array -> int -> (string * Scalar.t) list
val wires_of_constr_i : raw_constraint array -> int -> int list
val gate_wires : raw_constraint array -> int list
val linear_terms : raw_constraint -> (Scalar.t * int) list
val mk_linear_constr : (int list * (string * Scalar.t) list) -> raw_constraint
val mk_bool_constr : int -> raw_constraint
val raw_constraint_equal : raw_constraint -> raw_constraint -> bool