Imandra_tools.Region_idx
module type Args = sig ... end
Argument types of the decomposed function, as a tuple *
val synthesize :
?loc:Imandra_util.Iloc.t ->
?compound:bool ->
Imandra_surface.Modular_region.t list ->
(int * Imandra_surface.Modular_region.t) list * string
Takes a list of regions and returns an int -> region index, and code to map arguments to the decomposed function to the index of the region the arguments belong to If the arguments belong to no region in the region list, returns -1 *
val indexer_f_for :
?scope:Opentelemetry.Trace.scope ->
?loc:Imandra_util.Iloc.t ->
?assuming:string ->
Imandra_surface.Modular_region.t list ->
(int * Imandra_surface.Modular_region.t) list * string
Like synthesize
, but insted of returning code it returns a function name for the indexer *
val indexer_for :
(module Args with type args = 'a) ->
?assuming:string ->
Imandra_surface.Modular_region.t list ->
(int * Imandra_surface.Modular_region.t) list * ( 'a -> int )
Same as indexer_f_for
, but returns a first class function instead of a function name, the arguments to the indexer are passed as a tuple, whose type must match the args type in the first class module argument. If the arguments belong to no region in the region list, throws Not_found
*