Make.TypMappings from OCaml types to R1CS variables and constraints.
type ('var, 'value) t =
( 'var, 'value, Field.Constant.t, unit Internal_Basic.Checked.t )
Snarky_backendless.Types.Typ.tThe type ('var, 'value) t describes a mapping from the OCaml type 'value to a type representing the value using R1CS variables ('var). This description includes
Store.t for storing 'values as 'varsAlloc.t for creating a 'var when we don't know what values it should contain yetRead.t for reading the contents of the 'var back out as a 'value in As_prover blocksChecked.t for asserting constraints on the 'var -- for example, that a Boolean.t is either a Field.zero or a Field.one.Basic instances:
val unit : ( unit, unit ) tval field : ( Field.t, Field.Constant.t ) tCommon constructors:
synonym for tuple2
list ~length typ describes how to convert between a 'value list and a 'var list, given a description of how to convert between a 'value and a 'var.
length must be the length of the lists that are converted. This value must be constant for every use; otherwise the constraint system may use a different number of variables depending on the data given.
Passing a list of the wrong length throws an error.
array ~length typ describes how to convert between a 'value array and a 'var array, given a description of how to convert between a 'value and a 'var.
length must be the length of the arrays that are converted. This value must be constant for every use; otherwise the constraint system may use a different number of variables depending on the data given.
Passing an array of the wrong length throws an error.
val hlist :
( unit, unit, 'k_var, 'k_value, field, unit Internal_Basic.Checked.t )
Snarky_backendless.Snark_intf.Typ0.Data_spec0.data_spec ->
( ( unit, 'k_var ) H_list.t, ( unit, 'k_value ) H_list.t ) tUnpack a Data_spec.t list to a t. The return value relates a polymorphic list of OCaml types to a polymorphic list of R1CS types.
Convert relationships over isomorphic types:
val of_hlistable :
( unit, unit, 'k_var, 'k_value, field, unit Internal_Basic.Checked.t )
Snarky_backendless.Snark_intf.Typ0.Data_spec0.data_spec ->
var_to_hlist:( 'var -> ( unit, 'k_var ) H_list.t ) ->
var_of_hlist:( ( unit, 'k_var ) H_list.t -> 'var ) ->
value_to_hlist:( 'value -> ( unit, 'k_value ) H_list.t ) ->
value_of_hlist:( ( unit, 'k_value ) H_list.t -> 'value ) ->
( 'var, 'value ) tA specialised version of transport/transport_var that describes the relationship between 'var and 'value in terms of a Data_spec.t.
module Internal : sig ... endTyp.ts that make it easier to write a Typ.t for a mix of R1CS data and normal OCaml data.