Module Imandra_surface.Count_funs
Count functions, for types that need it
val mk_count_fun_ty : ?db:Event.DB.t -> ?find_cnt:(Uid.t -> Event.fun_data option) -> Type.t -> Event.fun_data
takes
ty
and builds a functionty -> int
val mk_count_fun_ty_as_lam : ?db:Event.DB.t -> ?find_cnt:(Uid.t -> Event.fun_data option) -> Type.t -> Term.t
Same as
mk_count_fun_ty
but returns a lambda term.
val mk_count_fun_tuple : ?db:Event.DB.t -> ?find_cnt:(Uid.t -> Event.fun_data option) -> Type.t list -> Event.fun_data
takes
ty1…tyn
and builds a function(ty1 * … * tyn) -> int
val mk_count_funs : ?db:Event.DB.t -> ?find_cnt:(Uid.t -> Event.fun_data option) -> Type.def list -> (Uid.t * Term.t * Event.fun_data) list
takes type definitions and returns the type name, a function term and function definition for each of the type def.