Lambda.LambdaThis is the actual module
module type VarEnvSig = sig ... endThis signature represents maps from the de Bruijn indices of a variable to some info that was recorded when the corresponding binder was crossed.
module MakeVarEnv (I : sig ... end) : VarEnvSig with type info = I.infoThis modules is a functor that returns a map from the de Bruijn indices of a variable to some info that was recorded when the corresponding binder was crossed.
This module implements a map from the de Bruijn indices of a variable to strings that was recorded when the corresponding binder was crossed.
type env = VNEnv.ttype consts =
int ->
Abstract_syntax.Abstract_syntax.syntactic_behavior * stringval is_binder : int -> consts -> boolval is_infix : int -> consts -> boolval is_prefix : int -> consts -> boolval raw_to_string : term -> stringval raw_type_to_string : stype -> stringval raw_to_caml : term -> stringval raw_type_to_caml : stype -> stringeta_long_form t ty type_of_cst returns the eta-long form of t with respect of type ty. t is supposed to be in beta-normal form and all the definitions of t and ty should have been unfolded. type_of_cst i returns the type (with unfolded definitions) of the constant whose id is i. i is supposed to be an actual id of a constant.
is_2nd_order ty type_definition returns true if ty is 2nd order. ty should have been unfolded and type_definition i is returns the unfolded type of a defined type (DAtom) whose id is i. i is supposed to be an actual id of such a defined type.
is_atomic ty type_definition returns true if ty is atomic. type_definition i returns the unfolded type of a defined type (DAtom) whose id is i. i is supposed to be an actual id of such a defined type.
alpha_eq t u returns true if t and u are alpha-equivalent, false otherwise.