C.InputModule for describing inputs to Plompiler circuits.
Input of type 'a to a Plompiler program. These hold a value of type 'a with some additional structure used for constructing the circuit. Often, after implementing a Plompiler program, one is left with a function of the shape:
val prog : 'a input -> 'b input -> unit repr t.
If the user only wants to execute the program in order to compute the corresponding circuit, but without producing a proof, then the inputs can be set to dummy values, as they will be ignored. That is, only the structure of the input is used for building the circuit.
val scalar : Csir.Scalar.t -> scalar inputscalar s describes a scalar input holding the value s.
val to_scalar : scalar input -> Csir.Scalar.tto_scalar i retrieves the value from a scalar input.
val bool : bool -> bool inputbool b describes a boolean input holding the value b.
val to_bool : bool input -> boolto_bool i retrieves the value from a boolean input.
val unit : unit inputunit describes a unit input.
pair a b describes the input tuple (a, b) made out of inputs a and b.
to_pair p retrieves the inputs (a, b) that make up the input tuple p.
with_implicit_bool_check bc i attaches an implicit bool check bc to the input i.
with_assertion assrtn i attaches an assertion assrtn to the input i.
type 'a t = 'a input